class A
{
public:
A()
{
cout << "Hello A" << endl;
}
void Hello()
{
cout << "Hello" << endl;
}
};
class B:public A
{
public:
B() {};
};
class C :public A
{
public:
C() {};
};
class D :public B, public C
{
public:
D() {};
~D() {};
};
int main()
{
D d;
d.Hello();
return 0;
}
下面加个虚继承就不会出现这种情况。
class A
{
public:
A()
{
cout << "Hello A" << endl;
}
void Hello()
{
cout << "Hello" << endl;
}
};
class B:virtual public A
{
public:
B() {};
};
class C :virtual public A
{
public:
C() {};
};
class D :public B, public C
{
public:
D() {};
~D() {};
};
int main()
{
D d;
d.Hello();
return 0;
}