Falu

Untitled

Jun 25th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5. //Klasa 2
  6. class Osoba
  7. {
  8. public:
  9.     Osoba() : nazwisko(0), rokUrodz(0)
  10.     {
  11.  
  12.     }
  13.     Osoba(char * n, int rok) : nazwisko(0), rokUrodz(0)
  14.     {
  15.         ustawRokUrodz(rok);
  16.         ustawNazwisko(n);
  17.     }
  18.     Osoba(Osoba &innaOsoba) : rokUrodz(innaOsoba.rokUrodz), nazwisko(0)
  19.     {
  20.         ustawNazwisko(innaOsoba.nazwisko);
  21.     }
  22.     ~Osoba()
  23.     {
  24.         if (nazwisko != 0)
  25.             delete[] nazwisko;
  26.     }
  27.     void ustawNazwisko(char * n)
  28.     {
  29.         if (n == 0)
  30.             return;
  31.         if (nazwisko != 0)
  32.             delete[] nazwisko;
  33.         nazwisko = new char[strlen(n) + 1];
  34.         strcpy(nazwisko, n);
  35.     }
  36.     char * pobierzNazwisko()
  37.     {
  38.         return nazwisko != 0 ? nazwisko : "";
  39.     }
  40.     void ustawRokUrodz(int rok)
  41.     {
  42.         rokUrodz = (rok >= 1900 && rok <= 2017) ? rok : 0;
  43.     }
  44.     int pobierzRokUrodz()
  45.     {
  46.         return rokUrodz;
  47.     }
  48. private:
  49.     int rokUrodz;
  50.     char * nazwisko;
  51. };
  52.  
  53.  
  54. class Student : public Osoba
  55. {
  56. public:
  57.     Student() : Osoba(), nrAlbumu(-1)
  58.     {
  59.     }
  60.     Student(char * nazw, int rok, int nr)
  61.         : Osoba(nazw, rok), nrAlbumu(nr)
  62.     {
  63.     }
  64.     Student(Student &innyStudent)
  65.         : Osoba(innyStudent), nrAlbumu(innyStudent.nrAlbumu)
  66.     {
  67.     }
  68.     int nrAlbumu;
  69. };
  70.  
  71. int main() {
  72.  
  73.     Osoba osoba;
  74.     Student pierwszy("Kowalski", 1996, 1234);
  75.     Student drugi(pierwszy);
  76.     drugi.ustawRokUrodz(2000);
  77.     drugi.ustawNazwisko("Nowak");
  78.     cout << endl << "Nazwisko: " << osoba.pobierzNazwisko();
  79.     cout << endl << "Rocznik: " << osoba.pobierzRokUrodz();
  80.     cout << endl << "Nazwisko: " << pierwszy.pobierzNazwisko();
  81.     cout << endl << "Rocznik: " << pierwszy.pobierzRokUrodz();
  82.     cout << endl << "Nazwisko: " << drugi.pobierzNazwisko();
  83.     cout << endl << "Rocznik: " << drugi.pobierzRokUrodz();
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment