W programie będącym rozwiązaniem wejściówki na lab.10 do klasy MojaKlasa
(reprezentującej grupę studencką) dodaj metodę szukaj
, działającą rekurencyjnie, tj. tak jak pokazano na slajdzie 144, wykład 9. Metoda szukaj
znajduje w liście dynamicznej obiekt – grupę studencką o podanym ID (dodaj pole ID
do klasy MojaKlasa
). Do klasy Wykladowca
również dodaj metodę szukaj
, która wywołuje szukaj
na rzecz grup studenckich w liście dynamicznej.
W funkcji main
po utworzeniu obiektu reprezentującego wykładowcę oraz listy co najmniej pięciu grup studenckich przypisanych do tego wykładowcy, wywołaj na rzecz tego obiektu metodę szukaj
, która znajduje w jego liście grupę studencką o podanym ID. Przetestuj działanie szukaj
zarówno dla przypadku, gdy grupa studencka o wskazanym ID istnieje, oraz dla przypadku, gdy takiej brak.
W destruktorze klasy MojaKlasa
zastosuj rekurencyjne usuwanie następnego elementu w liście (slajd 143, wykład 9) i wykorzystaj ten sposób usuwania list dynamicznych.
Napisz klasę Pracownik
, która będzie klasą bazową dla klasy Wykladowca
i przenieś do niej wszystkie pola z klasy Wykladowca
oraz metodę wypisz
. W klasie Wykladowca
zostaw tylko metody dodaj_klase
oraz szukaj
. Ustaw prawa dostępu tak, aby użytkownik obiektów typu Wykladowca
nadal mógł wywoływać metodę wypisz
. Zastanów się nad przeniesieniem części kodu z konstruktorów i destruktorów klasy Wykladowca
do klasy Pracownik
(np. na pewno instrukcje usuwania dynamicznej listy grup studenckich przypisanych do danego wykładowcy powinny być przeniesione do destruktora klasy Pracownik
). We wszystkich konstruktorach jak najwięcej pól inicjalizuj w liście inicjalizatorów konstruktora.
Hint: na zajęciach lab. 11 będzie trzeba rozbudować kod programu napisanego na lab.10.