fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. class Glowna
  6. {
  7. int a;
  8. int b;
  9. public:
  10. Glowna(int z, int y) : a(z), b(y) {}
  11. virtual int metoda() { cout << "Metoda z klasy bazowej\n"; return 0; }
  12. };
  13.  
  14. class Pochodna1 : public Glowna
  15. {
  16. int c;
  17. public:
  18. Pochodna1() : Glowna(1, 2), c(3) {}
  19. };
  20.  
  21. class Pochodna2 : public Glowna
  22. {
  23. int d;
  24. public:
  25. Pochodna2() : Glowna(4, 5), d(6) {}
  26. virtual int metoda() override { cout << "Metoda z klasy Pochodna2\n"; return d; }
  27. };
  28.  
  29. class Pochodna3 : public Glowna
  30. {
  31. int e;
  32. public:
  33. Pochodna3() : Glowna(7, 8) , e(9) {}
  34. };
  35.  
  36. int main() {
  37. vector<Glowna*> tablica;
  38. tablica.push_back(new Pochodna1());
  39. tablica.push_back(new Pochodna2());
  40. tablica.push_back(new Pochodna3());
  41.  
  42. for (int i = 0; i < 3; i++) {
  43. tablica[i]->metoda();
  44. }
  45. }
Success #stdin #stdout 0s 3272KB
stdin
Standard input is empty
stdout
Metoda z klasy bazowej
Metoda z klasy Pochodna2
Metoda z klasy bazowej