Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- class Bazowa
- {
- protected:
- int wartosc;
- public:
- Bazowa(int v) : wartosc(v) {}
- virtual void wypisz_stan() const { cout << "Obiekt klasy Bazowa ma wartosc " << wartosc << endl; } // metoda wirtualna
- };
- class Pochodna : public Bazowa // klasa Pochodna dziedziczy od klasy Bazowej
- {
- private:
- int druga_wartosc;
- public:
- Pochodna(int v1, int v2) : Bazowa(v1), druga_wartosc(v2) {} // przy wywołaniu konstruktora klasy Pochodna korzystamy z konstruktora klasy Bazowa
- void wypisz_stan() const { cout << "Obiekt klasy Pochodna ma wartosci " << wartosc << " i " << druga_wartosc << endl; }
- };
- int main()
- {
- vector<Bazowa*> obiekty{};
- obiekty.push_back(new Bazowa{ 10 });
- obiekty.push_back(new Pochodna{ 3, 8 });
- unsigned n = obiekty.size();
- for (unsigned i = 0; i < n; ++i)
- 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
- for (unsigned i = 0; i < n; ++i)
- delete obiekty[i];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement