CzarnyBarszcz

zadanie 6

Jan 10th, 2021
749
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class osoba
  8. {
  9.     protected:
  10.     string nazw;
  11.     int l_lat;
  12. public:
  13.     osoba(string nazw, int l_lat)
  14.     {
  15.         this->nazw = nazw;
  16.         this->l_lat = l_lat;
  17.     }
  18.     osoba() : nazw("Brak"), l_lat(0) {}
  19.     void pokaz()
  20.     {
  21.         cout<<nazw<<"\n";
  22.         cout<<l_lat<<"\n";
  23.     }
  24.     const string& nazwisko()const {return nazw;}
  25.     const int& liczba_lat()const {return l_lat;}
  26.     string& nazwisko(){return nazw;}
  27.     int& liczba_lat(){return l_lat;}
  28.     osoba* operator = (osoba &os)
  29.     {
  30.         this->nazw =os.nazw;
  31.         this->l_lat = os.l_lat;
  32.     }
  33. };
  34. class pracownik : public osoba
  35. {
  36.     protected:
  37.     string p_stanowisko;
  38.     double p_placa;
  39.     public:
  40.         pracownik(string nazw,int l_lat,string p_stanowisko, int p_placa):osoba(nazw,l_lat)
  41.         {
  42.             this->nazw = nazw;
  43.             this->l_lat = l_lat;
  44.             this->p_stanowisko = p_stanowisko;
  45.             this->p_placa=p_placa;
  46.         }
  47.     const string& stanowisko()const {return p_stanowisko;}
  48.     const double& placa()const {return p_placa;}
  49.     string& stanowisko(){return p_stanowisko;}
  50.     double& placa(){return p_placa;}
  51.         void pokaz()
  52.     {
  53.         cout<<nazw<<"\n";
  54.         cout<<l_lat<<"\n";
  55.         cout<<p_stanowisko<<"\n";
  56.         cout<<p_placa<<"\n";
  57.     }
  58.  
  59.     pracownik* operator = (pracownik &pr)
  60.     {
  61.         this->nazw = pr.nazw;
  62.         this->l_lat =pr.l_lat;
  63.         this->p_stanowisko=pr.p_stanowisko;
  64.         this->p_placa=pr.p_placa;
  65.     }
  66.  
  67. };
  68.  
  69. int main()
  70. {
  71. osoba os("Dolas", 26);
  72. os.pokaz();
  73. const pracownik pr1("Dyzma", 35, "mistrz", 1250.0);
  74. cout << pr1.nazwisko() << pr1.liczba_lat();
  75. cout << pr1.stanowisko() << pr1.placa();
  76. pracownik pr2(pr1);
  77. pr2.pokaz();
  78. pracownik pr3("Kos", 45, "kierownik", 2260.0);
  79. pr3.pokaz();
  80. pr3 = pr2;
  81. pr3.pokaz();
  82. osoba* w = &os;
  83. w->pokaz();
  84. w = &pr3;
  85. w->pokaz();
  86. static_cast<pracownik*>(w)->pokaz();
  87.  
  88.     return 0;
  89. }
  90.  
RAW Paste Data