#include<iostream>
using namespace std;
class A {
public:
A() {
cout << "A Done!\n";
}
};
class E :public A {
public:
E()
{
cout << "E Done!\n";
}
};
class B : virtual public A {
public:
B() {
cout << "B Done!\n";
}
};
class C :virtual public A {
public:
C() {
cout << "C Done!\n";
}
};
class D : public E,public B, public C {
public:
D()
{
cout << "D Done!\n";
}
};
int main() {
D d;
return 0;
}
这是代码
这是执行结果
请问为什么构造顺序是什么?小白刚学有点不懂为什么会先构造两次A