Bazując na kodzie Wejściówki na lab. 13 napisz szablon funkcji, która wykorzystując przeciążony operator +=
będzie sumowała obiekty z listy dynamicznej do jednego, lokalnie zadeklarowanego pomocniczego obiektu i zwracała ten obiekt przez wartość (tak jak to robi np. przeciążony operator +
). Szablon funkcji ma jeden parametr: typ danych reprezentujący elementy w liście dynamicznej, oraz jeden argument wywołania: wskaźnik na pierwszy element (głowa listy). Podobnie jak w Wejściówce na lab. 13 napisz program, który tworzy listę dynamiczną elementów klasy bazowej wybranej do realizacji na lab. 12, ale tym razem sumuje je wywołując przygotowany szablon funkcji. W funkcji main
wywołaj metodę wypisz
na rzecz obiektu pomocniczego zwróconego przez opracowaną funkcję.
Po przetestowaniu poprawnego działania wyżej opisanego kodu weź fragment kodu z rozwiązania zadania poziomu I z lab.13 tworzący listę obiektów wybranego jednego typu pochodnego i umieść w funkcji main
pod przetestowanym kodem. Po utworzeniu listy obiektów wybranego typu pochodnego wykonaj sumowanie elementów ponownie wywołując przygotowany szablon funkcji. W funkcji main
wywołaj metodę wypisz
na rzecz zwróconego obiektu pomocniczego, po czym zwolnij obydwie listy dynamiczne i zakończ program.
Zwróć uwagę, aby przeciążony operator +=
dla klasy pochodnej oprócz pól z klasy bazowej sumował przynajmniej jedno z pól występujących tylko w klasie pochodnej, tj. aby jego funkcjonalność była szersza niż operatora dla klasy bazowej. Sprawdź, czy zawartości obiektów pomocniczych utworzonych po pierwszym i po drugim sumowaniu są takie, jakich się spodziewałeś.