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ś.