fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class A{
  5. public:
  6. virtual void f(){cout<<"It's A"<<endl;}
  7. };
  8. class B : virtual public A{
  9. public:
  10. void f() override {cout<<"It's B"<<endl;}
  11. };
  12. class C : virtual public A{
  13. public:
  14. void f() override {cout<<"It's C"<<endl;}
  15. };
  16. class D : public B,public C{
  17. public:
  18. void f() override {cout<<"It's D, this means:"<<endl;
  19. B::f(); cout << "and at the same time "; C::f();
  20. }
  21. };
  22.  
  23. int main() {
  24. D d;
  25. d.f();
  26. }
Success #stdin #stdout 0.01s 5516KB
stdin
Standard input is empty
stdout
It's D, this means:
It's B
and at the same time It's C