fork(1) download
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. struct IB {
  6. virtual void b() = 0;
  7. };
  8.  
  9. struct B : IB {
  10. void b() override { cout << "B::b" << endl; }
  11. };
  12.  
  13. struct IA {
  14. virtual void a() = 0;
  15. };
  16.  
  17. struct A : IA, B {
  18. void a() override { cout << "A::a" << endl; }
  19. };
  20.  
  21. struct IAB : IA, IB {
  22. IAB(IA *ia, IB *ib) : ia(ia), ib(ib) {}
  23. void a() override { ia->a(); }
  24. void b() override { ib->b(); }
  25. private:
  26. IA *ia;
  27. IB *ib;
  28. };
  29.  
  30. int main() {
  31. A a;
  32. IAB iab(&a, &a);
  33. iab.a();
  34. iab.b();
  35. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
A::a
B::b