Zadanie 4

Zaprojektować i zaimplementować klasę osoba opisaną imieniem, nazwiskiem, wiekiem i adresem. Składowa adres powinna być dynamicznym obiektem typu adres. Klasa adres powinna zawierać składowe miasto, kod pocztowy, ulicę oraz numer budynku. Obie klasy powinny być wyposaŜone w konstruktor domyślny, konstruktor pozwalający zainicjować wszystkie pola składowe oraz operator wstawiania do strumienia. Jedna z tych klas powinna mieć takŜe zdefiniowany konstruktor kopiujący, operator przypisania oraz destruktor.

Przykład kodu testującego

adres* wsk = new adres("Czestochowa", "42-200", "Dabrowskiego", 73); cout << *wsk << '\n';

adres a1(*wsk);

delete wsk;

const adres* wsk1 = new adres("Warszawa", "00-950", "Mysliwiecka", 357); cout << a1 << '\n';

cout << *wsk1 << '\n';

adres a2;

cout << a2 << '\n';

a2 = a1;

cout << a2 << '\n';

osoba o("Jan", "Kos", 25, *wsk1); cout << o << '\n';

osoba o1(o);

cout << o1 << '\n';

osoba o2;

cout << o2 << '\n';

o2 = o1;

cout << o2 << '\n';

delete wsk1;