PO 2018: Wejściówka na Lab.14

Bazując na kodzie Wejściówki na lab. 13 napisz szablon funkcji sumuj, 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ść (tj. tak jak zwraca np. przeciążony operator +). Szablon tej 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 sumuj. W funkcji main po zsumowaniu wywołaj metodę wypisz na rzecz obiektu pomocniczego zwróconego przez sumuj.

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 sumuj. W funkcji main po zsumowaniu drugiej listy 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ś.