Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- class adres{
- string mia;
- string kod;
- string ul;
- int nr;
- public:
- adres():mia("brak"),kod("brak"),ul("brak"),nr(0){};
- adres(const string& a,const string& b,const string& c,int d):mia(a),kod(b),ul(c),nr(d){};
- friend ostream& operator << (ostream& out,const adres& r);
- };
- ostream& operator << (ostream& out,const adres& r){
- return out << r.mia<<","<<r.kod<<","<<r.ul<<","<<r.nr<<endl;
- }
- class osoba{
- string im;
- string naz;
- int wiek;
- adres* wsk;
- public:
- osoba():im("--"),naz("--"),wiek(0),wsk(new adres){};
- osoba(const string& i,const string& n,int w,const adres a):im(i),naz(n),wiek(w),wsk(new adres (a)){};
- ~osoba(){delete wsk;}
- osoba(const osoba& r):im(r.im),naz(r.naz),wiek(r.wiek),wsk(new adres(*r.wsk)){};//operator kopiujacy
- osoba& operator =(const osoba& r){//operator przypisania
- if(this!= &r){
- im=r.im;
- naz=r.naz;
- wiek=r.wiek;
- *wsk=*r.wsk;
- }
- return *this;
- }
- friend ostream& operator << (ostream& out,const osoba& r);
- };
- ostream& operator << (ostream& out,const osoba& r){
- return out << r.im<<","<<r.naz<<","<<r.wiek<<","<<*r.wsk<<endl;;
- }
- 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