fork(2) download
  1. #include <iostream>
  2.  
  3. class A
  4. {
  5. public:
  6. virtual void foo() = 0;
  7. };
  8.  
  9. class B
  10. {
  11. public:
  12. virtual void foo() = 0;
  13. };
  14.  
  15. class C : public A, public B
  16. {
  17. public:
  18. virtual void foo();
  19. };
  20.  
  21. void C::foo() { std::cout<<"C::foo"<<std::endl; }
  22. void C::A::foo() { std::cout<<"C::A::foo"<<std::endl; }
  23. void C::B::foo() { std::cout<<"C::B::foo"<<std::endl; }
  24.  
  25. int main()
  26. {
  27. C c;
  28. A* pa = &c;
  29. B* pb = &c;
  30.  
  31. c.foo();
  32. c.A::foo();
  33. c.B::foo();
  34. pa->foo();
  35. pb->foo();
  36. pa->A::foo();
  37. pb->B::foo();
  38. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
C::foo
C::A::foo
C::B::foo
C::foo
C::foo
C::A::foo
C::B::foo