- #include <iostream>
- #include <string>
- using namespace std;
- // Klasa bazowa Osoba
- class Osoba {
- protected:
- string imie;
- string nazwisko;
- int wiek;
- public:
- // Konstruktor argumentowy
- Osoba(string im, string naz, int w) : imie(im), nazwisko(naz), wiek(w) {}
- // Destruktor
- virtual ~Osoba() {
- cout << "Usuwam osobe " << imie << " " << nazwisko << endl;
- }
- // Metoda do wyświetlania danych osoby
- void pokazDane() {
- cout << "Osoba: " << imie << " " << nazwisko << ", Wiek: " << wiek << " lat" << endl;
- }
- };
- // Klasa Stanowisko
- class Stanowisko {
- private:
- string nazwaStanowiska;
- double wynagrodzenie;
- public:
- // Konstruktor argumentowy
- Stanowisko(string nazwa, double wyn) : nazwaStanowiska(nazwa), wynagrodzenie(wyn) {}
- // Metoda do wyświetlania danych stanowiska
- void pokazStanowisko() {
- cout << "Stanowisko: " << nazwaStanowiska << ", Wynagrodzenie: " << wynagrodzenie << " PLN" << endl;
- }
- };
- // Klasa dziedzicząca Pracownik
- class Pracownik : public Osoba {
- private:
- int idPracownika;
- Stanowisko stanowisko; // Kompozycja
- public:
- // Konstruktor
- Pracownik(string im, string naz, int w, int id, string nazwaStanowiska, double wyn)
- : Osoba(im, naz, w), idPracownika(id), stanowisko(nazwaStanowiska, wyn) {}
- // Metoda do wyświetlania pełnych danych pracownika
- void pokazDanePracownika() {
- cout << "Dane pracownika:" << endl;
- pokazDane(); // Wywołanie metody z klasy bazowej
- cout << "Pracownik ID: " << idPracownika << endl;
- stanowisko.pokazStanowisko(); // Wywołanie metody z klasy Stanowisko
- }
- // Destruktor
- ~Pracownik() {
- cout << "Usuwam pracownika " << Osoba::imie << " " << Osoba::nazwisko << " o ID " << idPracownika << endl;
- }
- };
- int main() {
- // Tworzenie obiektu klasy Pracownik
- Pracownik pracownik("Jan", "Golas", 40, 101, "Krawiec", 1000);
- // Wywołanie metody wyświetlającej pełne dane pracownika
- pracownik.pokazDanePracownika();
- // Program kończy się, obiekt zostanie usunięty, a destruktory zostaną wywołane
- return 0;
- }
Bez tytułu
z Innocent Matamata, 2 tygodnie temu, napisane w Plain Text, wyświetlone 29 razy.
[paste_expire] 10 miesiące.
URL https://pastebin.k4be.pl/view/600b1450
Udostępnij
Pobierz wklejkę lub Pokaż surowy tekst
— Rozwiń pełna szerokość przeglądarki