Laboratorium 2 - konstruktory, destruktory, struktury dynamiczne 1 Informacje wst¦pne W ramach zaj¦¢ laboratoryjnych nale»y dostosowa¢ uprzednio zrealizowany kontener liczby zespolonej tak aby stanowiª pojedynczy element listy jednokierunkowej (poni»ej klasa okre±lana nazw¡ Element), nast¦pnie zrealizowa¢ klas¦ List b¦d¡c¡ list¡ jednokierunkow¡ uprzednio stworzonego elementu. 2 Klasa Element • Powinien posiada¢ zdeniowany konstruktor domy±lny, konstruktor kopiuj¡cy (je±li jest konieczny) oraz odpowiedni konstruktor pozwalaj¡cy na ustalanie warto±ci elementu liczby zespolonej. • Powinien posiada¢ destruktor je±li jest konieczny. 3 Klasa List • Powinna posiada¢ zaimplementowany konstruktor domy±lny inicjalizuj¡cy pust¡ list¦ • Powinna posiada¢ zaimplementowany destruktor zwalniaj¡cy wszystkie elementy listy • Metody publiczne klasy: 1. insert(Element e) - wstawia nowy element na koniec listy 2. Element read(int i) - zwraca i-ty element listy (b¡d¹ N U LL w wypadku braku tego elementu) • Autor klasy mo»e implementowa¢ dowoln¡ ilo±¢ pomocniczych metod prywatnych • Wszystkie pola klasy List powinny mie¢ dost¦p prywatny. W razie potrzeby nale»y utworzy¢ publiczne metody dost¦powe. 4 Zadania dodatkowe dla klasy List • Utworzy¢ konstruktor kopiuj¡cy dla klasy List pozwalaj¡cy na wykonanie kopii caªej listy • Utworzy¢ metod¦ print() wypisuj¡c¡ numer oraz zawarto±¢ wszystkich elementów listy • Utworzy¢ metod¦ remove(int i) usuwaj¡c¡ element z listy je±li ten element istnieje • Utworzy¢ metod¦ sort() sortuj¡c¡ list¦ liczb zespolonych od najmniejszej do najwi¦kszej • Utworzy¢ metod¦ sum() zliczaj¡c¡ sum¦ wszystkich liczb zespolonych w danej klasie • Utworzy¢ metod¦ shuf f le() rozrzucaj¡c¡ elementy listy w sposób (pseudo)losowy 5 Uwagi do zada« • Pami¦taj, »e nagªówki klasy (∗.h) powinny zawiera¢ wyª¡cznie deklaracje klas, natomiast denicje poszczególnych metod powinny znajdowa¢ si¦ w pliku (∗.cpp) • Upewnij si¦, »e nie zapomniaªe± o zabezpieczeniu przed ponownym doª¡czeniem zawarto±ci (deklaracji klasy) pliku nagªówkowego. 1