fork download
  1. #include <iostream>
  2. class Base {
  3. public:
  4. virtual void who() {
  5. std::cout << "Base\n";
  6. }
  7. };
  8.  
  9. class FirstD: public Base {
  10. public:
  11. void who() {
  12. std::cout << "First derivation\n";
  13. }
  14. };
  15.  
  16. class SecondD: public Base {
  17. // who() не визначена
  18. };
  19.  
  20. int main() {
  21. Base baseObj;
  22. Base *p;
  23. FirstD firstObj;
  24. SecondD secondObj;
  25.  
  26. p = &baseObj;
  27. p->who(); // доступ до who класу Base
  28. p = &firstObj;
  29. p->who(); // доступ до who класу FirstD
  30. p = &secondObj;
  31. p->who(); /* доступ до who() класу Base, оскільки SecondD не перевизначає */
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Base
First derivation
Base