Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <string>
- using namespace std;
- // ----------------------------------------------------------------------------
- class pracownik {
- private:
- string imie;
- string nazwisko;
- string stanowisko;
- int wiek;
- int zarobki;
- public:
- // konstrutor musi być publiczny i ma nazwę taką samą jak nazwa klasy
- pracownik(){ } // konstruktor domyślny nawet jeśli go nie napiszesz to zawsze jest dodawany
- pracownik(string imie, string nazwisko ) // konstruktory można przeciążać,
- { //ten ustawia pozostałe wartości puste
- this->imie = imie;
- this->nazwisko = nazwisko;
- this->stanowisko = "";
- wiek = zarobki = 0;
- }
- // poniższy wariant dodatkowo wypisuje zawartość klasy
- pracownik(string imie, string nazwisko, string stanowisko, int wiek, int zarobki)
- {
- Ustaw(imie, nazwisko, stanowisko, wiek, zarobki);
- Wypisz();
- }
- void Ustaw(string imie,string nazwisko,string stanowisko, int wiek, int zarobki) {
- this->imie = imie;
- this->nazwisko = nazwisko;
- this->stanowisko = stanowisko;
- this->wiek = wiek;
- this->zarobki = zarobki;
- }
- void Wypisz();
- };
- // ----------------------------------------------------------------------------
- class dyrektor : public pracownik
- {
- public:
- dyrektor(string imie,string nazwisko,string stanowisko, int wiek, int zarobki)
- {
- Ustaw(imie, nazwisko, "Dyrektor " + stanowisko, wiek, zarobki* 1.25); /// zmiana dla dyrektora
- }
- // Trochę śmieszne to zadanie, bo dziedzicząc nie da sie zapisać do dziedziczonych zmiennych prywatnych
- // void Ustaw(string imie,string nazwisko,string stanowisko, int wiek, int zarobki) {
- // imie = imie;
- // nazwisko = nazwisko;
- // stanowisko = stanowisko;
- // wiek = wiek;
- // zarobki = zarobki * 1.25; /// zmiana dla dyrektora
- // }
- };
- // ----------------------------------------------------------------------------
- void pracownik::Wypisz() {
- cout << "Imie: " << imie << "\nNazwisko: " << nazwisko
- << "\nStanowisko: " << stanowisko << "\nWiek: " << wiek
- << "\nZarobki: " << zarobki << "\n\n";
- }
- // ----------------------------------------------------------------------------
- int main()
- {
- pracownik *pracownik1 = new pracownik;
- // pracownik *p1 = nullptr, *p2 = nullptr; // jeśli nie przydzielamy od razu pamięci wskaźnikowi to należy go wyzerować
- dyrektor *d1 = nullptr;
- pracownik1->Ustaw("Regina","Arabik","Mechatronik",22,3000);
- pracownik1->Wypisz();
- d1 = new dyrektor("Regina","Arabik","Mechatronik",22,3000);
- // nie do końca rozumiem to zadanie, bo bez przepisania całego kodu klasy pracownik to zadanie nie ma sensu
- // ponieważ w dziedziczeniu chodzi o to by minimalizować ilość pisanego kodu, więc pozostaje to połatać po
- // partyzancku i nie używać metody Ustaw, a konstruktora, możesz zapytać wykładowcę jakie powinno być rozwiązanie
- /// d1->Ustaw("Regina","Arabik","Mechatronik",22,3000);
- d1->Wypisz();
- delete pracownik1, d1;
- system ("Pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement