PO2017: Wejściówka na lab.14

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

Wskazówki dotyczące zadań semestralnych

Zbliżają się terminy oddawania zadań semestralnych, dlatego aby upewnić się, że program zawiera to co powinien, być może przydadzą się ubiegłoroczne wskazówki dotyczące zadań semestralnych. Chciałem podkreślić, że to tylko wskazówki i nie reprezentują opisu jedynie słusznej budowy programu. Np. dziedziczenie i polimorfizm można wprowadzić również na inne sposoby, niż te pokazane we wskazówkach.

PO2017: Wejściówka na lab.13

Do klasy bazowej wybranej do realizacji na lab. 12 (reprezentującej silnik samochodowy albo samochód albo urządzenie optyczne albo osobę na uczelni) dodaj przeciążony operator += jako metodę należącą do klasy. Korzystając z kodu wejściówki na lab. 12 utwórz listę dynamiczną zawierającą 5 elementów typu klasy bazowej, po czym zsumuj je korzystając z napisanego operatora. Na koniec wywołaj metodę wypisz na rzecz obiektu przechowującego wartość sumy.

Hint: na lab.13 będą rozwijane programy napisane na lab.12.