Laboratorium 2 - konstruktory, destruktory, struktury

Transkrypt

Laboratorium 2 - konstruktory, destruktory, struktury
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