fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Weapon
  5. {
  6. public:
  7. virtual void features()
  8. { cout << "Loading weapon features.\n"; }
  9. };
  10.  
  11. class Bomb : public Weapon
  12. {
  13. public:
  14. void features()
  15. { cout << "Loading bomb features.\n"; }
  16. };
  17.  
  18. class Gun : public Weapon
  19. {
  20. public:
  21. void features()
  22. { cout << "Loading gun features.\n"; }
  23. };
  24.  
  25. class Loader
  26. {
  27. public:
  28. void loadFeatures(Weapon *weapon)
  29. {
  30. weapon->features();
  31. }
  32. };
  33.  
  34. class A {public: virtual int func(){cout<<"In A";};};
  35. class B: virtual public A {};
  36. class C: virtual public A {};
  37. class D: virtual public C {public: virtual int func(){cout<<"In D";};};
  38. class E: public B, public D {};
  39.  
  40.  
  41. int main()
  42. {
  43. E *e = new E();
  44. e->func();
  45.  
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 4384KB
stdin
Standard input is empty
stdout
In D