Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- using namespace std;
- class adres{
- private:
- string m, u, kp;
- int nr;
- public:
- adres(): m("Brak"), u("Brak"), kp("00-000"), nr(0){};
- adres(const string & mia, const string & ul, const string & k, const int & nrB): m(mia), u(ul), kp(k), nr(nrB){}; // !!! ref to obj stalego w argumentach
- friend ostream & operator << (ostream &, const adres &); // zaprzyjazniony operator
- };
- ostream & operator << (ostream & out, const adres & r){
- return out << r.m << " " << r.u << " " << r.kp << " " << r.nr << endl;
- } // przeciazanie operatora << nie moze byc metodą
- class osoba{
- private:
- string im, naz;
- int wiek;
- adres * wsk;
- public:
- osoba(): im("Brak"), naz("Brak"), wiek(0), wsk(new adres){};
- osoba(const string & i, const string & n, const int & w, const adres & a4): im(i), naz(n), wiek(w), wsk(new adres(a4)){}; // ??
- osoba(const osoba & r): im(r.im), naz(r.naz), wiek(r.wiek), wsk(new adres(*r.wsk)){}; // konstruktor kopiacy
- osoba & operator = (const osoba & r){
- if(this != &r){
- im = r.im;
- naz = r.naz;
- wiek = r.wiek;
- *wsk = *r.wsk;
- }// sprzawdzam identycznosc
- return *this; // zawsze zwracamy siebie
- }
- friend ostream & operator << (ostream &, const osoba &);
- ~osoba(){delete wsk;} // kasowac wskaznik
- };
- ostream & operator << (ostream & out, const osoba & o){
- return out << o.im << " " << o.naz << " " << o.wiek << " " << *o.wsk << endl; // friend jesli odwolanie do pola
- }
- 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", "Kos", 25, *wsk1);
- delete wsk1; // !!!!!!!
- cout << o << '\n';
- osoba o1(o);
- cout << o1 << '\n';
- osoba o2;
- cout << o2 << '\n';
- o2 = o1;
- cout << o2 << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement