fork download
  1. #include <iostream>
  2.  
  3. struct B
  4. {
  5. virtual void f() {}; // пусто
  6. //virtual void f() = 0; // чистая виртуальная
  7. virtual ~B() {} // виртуальный деструктор нужен для правильного удаления
  8. };
  9.  
  10. struct D : B
  11. {
  12. virtual void f() { std::cout << "D::f()\n"; }
  13. };
  14.  
  15.  
  16. int main() {
  17.  
  18. B* b = new D;
  19.  
  20. b->f(); // Вызовет D::f()
  21.  
  22. delete b;
  23.  
  24. return 0;
  25. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
D::f()