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
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. // Klasa bazowa Osoba
  7. class Osoba {
  8. protected:
  9.     string imie;
  10.     string nazwisko;
  11.     int wiek;
  12.  
  13. public:
  14.     // Konstruktor argumentowy
  15.     Osoba(string im, string naz, int w) : imie(im), nazwisko(naz), wiek(w) {}
  16.  
  17.     // Destruktor
  18.     virtual ~Osoba() {
  19.         cout << "Usuwam osobe " << imie << " " << nazwisko << endl;
  20.     }
  21.  
  22.     // Metoda do wyświetlania danych osoby
  23.     void pokazDane() {
  24.         cout << "Osoba: " << imie << " " << nazwisko << ", Wiek: " << wiek << " lat" << endl;
  25.     }
  26. };
  27.  
  28. // Klasa Stanowisko
  29. class Stanowisko {
  30. private:
  31.     string nazwaStanowiska;
  32.     double wynagrodzenie;
  33.  
  34. public:
  35.     // Konstruktor argumentowy
  36.     Stanowisko(string nazwa, double wyn) : nazwaStanowiska(nazwa), wynagrodzenie(wyn) {}
  37.  
  38.     // Metoda do wyświetlania danych stanowiska
  39.     void pokazStanowisko() {
  40.         cout << "Stanowisko: " << nazwaStanowiska << ", Wynagrodzenie: " << wynagrodzenie << " PLN" << endl;
  41.     }
  42. };
  43.  
  44. // Klasa dziedzicząca Pracownik
  45. class Pracownik : public Osoba {
  46. private:
  47.     int idPracownika;
  48.     Stanowisko stanowisko; // Kompozycja
  49.  
  50. public:
  51.     // Konstruktor
  52.     Pracownik(string im, string naz, int w, int id, string nazwaStanowiska, double wyn)
  53.         : Osoba(im, naz, w), idPracownika(id), stanowisko(nazwaStanowiska, wyn) {}
  54.  
  55.     // Metoda do wyświetlania pełnych danych pracownika
  56.     void pokazDanePracownika() {
  57.         cout << "Dane pracownika:" << endl;
  58.         pokazDane(); // Wywołanie metody z klasy bazowej
  59.         cout << "Pracownik ID: " << idPracownika << endl;
  60.         stanowisko.pokazStanowisko(); // Wywołanie metody z klasy Stanowisko
  61.     }
  62.  
  63.     // Destruktor
  64.     ~Pracownik() {
  65.         cout << "Usuwam pracownika " << Osoba::imie << " " << Osoba::nazwisko << " o ID " << idPracownika << endl;
  66.     }
  67. };
  68.  
  69. int main() {
  70.     // Tworzenie obiektu klasy Pracownik
  71.     Pracownik pracownik("Jan", "Golas", 40, 101, "Krawiec", 1000);
  72.  
  73.     // Wywołanie metody wyświetlającej pełne dane pracownika
  74.     pracownik.pokazDanePracownika();
  75.  
  76.     // Program kończy się, obiekt zostanie usunięty, a destruktory zostaną wywołane
  77.     return 0;
  78. }
  79.  
  80.  

odpowiedź "Bez tytułu"

Tutaj możesz odpowiedzieć na wklejkę z góry

captcha