Pasta: 927a8c701dcb25b70da8fc50aa708f8ffb169ea6 (2017-11-28)

Język: Text
Adres: p43.pl/p,927a8c701dcb25b70da8fc50aa708f8ffb169ea6
Ilość linii: 119
Rozmiar: 2.43 kB
Wyświetleń: 184
Ostatnio użyto: 2018-07-14 13:17:36
#include <iostream> using namespace std; class osoba; class adres { string miasto, kod, ulica; unsigned nr; public: adres(): miasto("brak"), kod("brak"), ulica("brak"), nr(0) {} adres(const string & m, const string & k, const string & u, const unsigned & n) : miasto(m), kod(k), ulica(u), nr(n) {} //adres(const adres & r) : miasto(r.miasto), kod(r.kod), ulica(r.ulica), nr(r.nr) {} friend ostream & operator << (ostream &, const adres &); friend ostream & operator << (ostream &, const osoba &); }; ostream & operator << (ostream &out, const adres &a) { out << a.miasto << " " << a.kod << " " << a.ulica << " " << a.nr; return out; } class osoba { string imie, nazwisko; unsigned wiek; adres * wsk; public: osoba(): imie("brak"), nazwisko("brak"), wiek(0), wsk(new adres) {} osoba(const string & i, const string & n, const unsigned &w, const adres &W): imie(i), nazwisko(n), wiek(w), wsk(new adres(W)) {} // konstruktor kopiujacy osoba(const osoba & O ) : imie(O.imie), nazwisko(O.nazwisko), wiek(O.wiek), wsk(new adres(*O.wsk)) {} // operator przypisania osoba & operator = (const osoba & O) { if (this != &O) { imie = O.imie; nazwisko = O.nazwisko; wiek = O.wiek; *wsk = *O.wsk; } return *this; } friend ostream & operator << (ostream &, const osoba & ); }; ostream & operator << (ostream & out, const osoba &O ) { out << O.imie << " " << O.nazwisko << " " << O.wiek << " " << O.wsk->miasto << " " << O.wsk->kod << " " << O.wsk->ulica << " " << O.wsk->nr << '\n'; } int main() { 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", "Kowalski", 25, *wsk1); delete wsk1; cout << o << '\n'; osoba o1(o); cout << o1 << '\n'; osoba o2; cout << o2 << '\n'; o2 = o1; cout << o2 << '\n'; }