1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <iostream> using namespace std;
class A { public: int x; A(int a) : x(a) { cout << "A constructor" << endl; } };
class B : virtual public A { public: B() : A(0) { cout << "B constructor" << endl; } };
class C : virtual public A { public: C() : A(1) { cout << "C constructor" << endl; } };
class D : public B, public C { public: D() : A(10), B(), C() { cout << "D constructor" << endl; } };
int main() { D obj; cout << "x = " << obj.x << endl; return 0; }
|