fork 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&) { cout << "b"; }
  14. };
  15.  
  16. class C : public virtual A {
  17. public:
  18. C() { cout << "C"; }
  19. C(const C&) { cout << "c"; }
  20. };
  21.  
  22. class D : public B, C {
  23. public:
  24. D() { cout << "D"; }
  25. D(const 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 0s 5480KB
stdin
Standard input is empty
stdout
ABCDABCd