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;