Advertisement
Guest User

Lab 04 metody

a guest
Oct 23rd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.  
  5. class adres{
  6.     string mia;
  7.     string kod;
  8.     string ul;
  9.     int nr;
  10.  
  11.     public:
  12.         adres():mia("brak"),kod("brak"),ul("brak"),nr(0){};
  13.         adres(const string& a,const string& b,const string& c,int d):mia(a),kod(b),ul(c),nr(d){};
  14.  
  15.         friend ostream& operator << (ostream& out,const adres& r);
  16. };
  17. ostream& operator << (ostream& out,const adres& r){
  18.     return out << r.mia<<","<<r.kod<<","<<r.ul<<","<<r.nr<<endl;
  19. }
  20.  
  21.  
  22. class osoba{
  23.         string im;
  24.         string naz;
  25.         int wiek;
  26.         adres* wsk;
  27.     public:
  28.         osoba():im("--"),naz("--"),wiek(0),wsk(new adres){};
  29.         osoba(const string& i,const string& n,int w,const adres a):im(i),naz(n),wiek(w),wsk(new adres (a)){};
  30.         ~osoba(){delete wsk;}
  31.         osoba(const osoba& r):im(r.im),naz(r.naz),wiek(r.wiek),wsk(new adres(*r.wsk)){};//operator kopiujacy
  32.         osoba& operator =(const osoba& r){//operator przypisania
  33.         if(this!= &r){
  34.         im=r.im;
  35.         naz=r.naz;
  36.         wiek=r.wiek;
  37.         *wsk=*r.wsk;
  38.         }
  39.             return *this;
  40.         }
  41.         friend ostream& operator << (ostream& out,const osoba& r);
  42. };
  43.     ostream& operator << (ostream& out,const osoba& r){
  44.         return out << r.im<<","<<r.naz<<","<<r.wiek<<","<<*r.wsk<<endl;;
  45.     }
  46. int main(){
  47.  
  48.     adres* wsk = new adres("Czestochowa", "42-200", "Dabrowskiego", 73);
  49.     cout << *wsk << '\n';
  50.     adres a1(*wsk);
  51.     delete wsk;
  52.     const adres* wsk1 = new adres("Warszawa", "00-950","Mysliwiecka", 357);
  53.     cout << a1 << '\n';
  54.     cout << *wsk1 << '\n';
  55.     adres a2;
  56.     cout << a2 << '\n';
  57.     a2 = a1;
  58.     cout << a2 << '\n';
  59.  
  60.     osoba o("Jan","Kos",25,*wsk1);
  61.     delete wsk1;
  62.     cout << o << '\n';
  63.     osoba o1(o);
  64.     cout << o1 << '\n';
  65.     osoba o2;
  66.     cout << o2 << '\n';
  67.     o2 = o1;
  68.     cout << o2 << '\n';
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement