Advertisement
MeehoweCK

Untitled

Aug 23rd, 2023
1,092
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. class Bazowa
  7. {
  8. protected:
  9.     int wartosc;
  10. public:
  11.     Bazowa(int v) : wartosc(v) {}
  12.     virtual void wypisz_stan() const { cout << "Obiekt klasy Bazowa ma wartosc " << wartosc << endl; }      // metoda wirtualna
  13. };
  14.  
  15. class Pochodna : public Bazowa      // klasa Pochodna dziedziczy od klasy Bazowej
  16. {
  17. private:
  18.     int druga_wartosc;
  19. public:
  20.     Pochodna(int v1, int v2) : Bazowa(v1), druga_wartosc(v2) {}     // przy wywołaniu konstruktora klasy Pochodna korzystamy z konstruktora klasy Bazowa
  21.     void wypisz_stan() const { cout << "Obiekt klasy Pochodna ma wartosci " << wartosc << " i " << druga_wartosc << endl; }
  22. };
  23.  
  24. int main()
  25. {
  26.     vector<Bazowa*> obiekty{};
  27.     obiekty.push_back(new Bazowa{ 10 });
  28.     obiekty.push_back(new Pochodna{ 3, 8 });
  29.  
  30.     unsigned n = obiekty.size();
  31.     for (unsigned i = 0; i < n; ++i)
  32.         obiekty[i]->wypisz_stan();      // wywołanie polimorficzne (w zależności od tego z obiektem której klasy mamy do czynienia, wywołanie jest inne
  33.  
  34.     for (unsigned i = 0; i < n; ++i)
  35.         delete obiekty[i];
  36.  
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement