fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class A {
  5. public:
  6. A() { cout << "A"; }
  7. A(const A&) { cout << "a"; }
  8. };
  9.  
  10. class B : public virtual A {
  11. public:
  12. B() { cout << "B"; }
  13. B(const B &b) : A(b) { cout << "b"; }
  14. };
  15.  
  16. class C : public virtual A {
  17. public:
  18. C() { cout << "C"; }
  19. C(const C &c) : A(c) { cout << "c"; }
  20. };
  21.  
  22. class D : public B, C {
  23. public:
  24. D() { cout << "D"; }
  25. D(const D &d) : A(d), B(d), C(d) { cout << "d"; }
  26. };
  27.  
  28. int main()
  29. {
  30. D d;
  31. D d2{d}; // or: D d2 = d;
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 5524KB
stdin
Standard input is empty
stdout
ABCDabcd