Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- using namespace std;
- //Klasa 2
- class Osoba
- {
- public:
- Osoba() : nazwisko(0), rokUrodz(0)
- {
- }
- Osoba(char * n, int rok) : nazwisko(0), rokUrodz(0)
- {
- ustawRokUrodz(rok);
- ustawNazwisko(n);
- }
- Osoba(Osoba &innaOsoba) : rokUrodz(innaOsoba.rokUrodz), nazwisko(0)
- {
- ustawNazwisko(innaOsoba.nazwisko);
- }
- ~Osoba()
- {
- if (nazwisko != 0)
- delete[] nazwisko;
- }
- void ustawNazwisko(char * n)
- {
- if (n == 0)
- return;
- if (nazwisko != 0)
- delete[] nazwisko;
- nazwisko = new char[strlen(n) + 1];
- strcpy(nazwisko, n);
- }
- char * pobierzNazwisko()
- {
- return nazwisko != 0 ? nazwisko : "";
- }
- void ustawRokUrodz(int rok)
- {
- rokUrodz = (rok >= 1900 && rok <= 2017) ? rok : 0;
- }
- int pobierzRokUrodz()
- {
- return rokUrodz;
- }
- private:
- int rokUrodz;
- char * nazwisko;
- };
- class Student : public Osoba
- {
- public:
- Student() : Osoba(), nrAlbumu(-1)
- {
- }
- Student(char * nazw, int rok, int nr)
- : Osoba(nazw, rok), nrAlbumu(nr)
- {
- }
- Student(Student &innyStudent)
- : Osoba(innyStudent), nrAlbumu(innyStudent.nrAlbumu)
- {
- }
- int nrAlbumu;
- };
- int main() {
- Osoba osoba;
- Student pierwszy("Kowalski", 1996, 1234);
- Student drugi(pierwszy);
- drugi.ustawRokUrodz(2000);
- drugi.ustawNazwisko("Nowak");
- cout << endl << "Nazwisko: " << osoba.pobierzNazwisko();
- cout << endl << "Rocznik: " << osoba.pobierzRokUrodz();
- cout << endl << "Nazwisko: " << pierwszy.pobierzNazwisko();
- cout << endl << "Rocznik: " << pierwszy.pobierzRokUrodz();
- cout << endl << "Nazwisko: " << drugi.pobierzNazwisko();
- cout << endl << "Rocznik: " << drugi.pobierzRokUrodz();
- }
Advertisement
Add Comment
Please, Sign In to add comment