fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct A
  5. {
  6. virtual void go(){ cout << "A" << endl; }
  7. virtual ~A(){}
  8. };
  9. struct B : A
  10. {
  11. void go(){ cout << "B" << endl; }
  12. virtual ~B(){}
  13. };
  14. struct C : B
  15. {
  16. void go(){ cout << "C" << endl; }
  17. virtual ~C(){}
  18. };
  19. struct D : B
  20. {
  21. virtual void go(){ cout << "D" << endl; }
  22. virtual ~D(){}
  23. };
  24.  
  25. int main()
  26. {
  27. B b;
  28. C c;
  29. D d;
  30. A &a1 (b);
  31. A &a2 (c);
  32. A &a3 (d);
  33. a1.go();
  34. a2.go();
  35. a3.go();
  36. }
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
B
C
D