====== Ćwiczenie 4: Pojemniki - lista ====== Ćwiczenie to jest częścią większego zadania, które będzie polegać na zaprojektowaniu **szablonów** kilku rodzajów klas pojemnikowych z wykorzystaniem **mechanizmu dziedziczenia** oraz **iteratora** dla tych klas. \\ **Ćwiczenie 4.** polegać będzie na zaprojektowaniu szablonu pojemnika typu **lista**. ===== Po co ===== * Doskonalenie umiejętności definiowania szablonów. * Utrwalenie umiejętności posługiwania się mechanizmami dziedziczenia, polimorfizmu. * Zapoznanie się z podstawowymi strukturami danych. ===== Oddawanie ćwiczenia ===== * Przed oddaniem ćwiczenia, program należy przetestować używając pliku ''ex4main.cpp'' z {{:pl:dydaktyka:jimp2:2016:part2:ex:ex4main.zip|poniższego archiwum}} * Powyższy plik wymaga istnienia pliku ''aghInclude.h'' poprzez który włączane są wszystkie niezbędne pliki. ===== Przebieg ćwiczenia ===== - Ćwiczenie polega na napisaniu **dwóch** klas: * **''aghSlist''** reprezentującą listę jednokierunkową, * **''aghDlist''** reprezentującą listę dwukierunkową. - Obie klasy powinny **dziedziczyć** klasę abstrakcyjną opisaną w [[ex3|ćwiczeniu 3]] w sposób **publiczny**. - Klasy powinny obsługiwać **wszystkie** opisane tam metody. - Nie ma przymusu tworzenia metod czy też klas specjalizowanych. - Program powinien mieć budowę **modułową**. - **Nie dublujemy kodu**, tzn. nie piszemy dwa i więcej razy kodu, który wykonuje podobne zadania - **ta kwestia będzie ważnym kryterium oceny**. - Do realizacji ćwiczenia **nie można** wykorzystywać już gotowych rozwiązań (STL, Qt, tip). - Zaistniałe nieprawidłowe sytuacje powinny zostać obsłużone poprzez wyrzucenie wyjątku przy pomocy klasy **''[[..:org:codepolicy#obsluga_wyjatkow|aghException]]''**.