mah*_*esh 3 c++ inheritance multiple-inheritance virtual-inheritance
class Base
{
public:
Base(){}
Base(int k):a(k)
{
}
int a;
};
class X:virtual public Base
{
public:
X():Base(10){}
int x;
};
class Y:virtual public Base
{
public:
Y():Base(10){}
int y;
};
class Z:public X,public Y
{
public:
Z():X(10){}
};
int main()
{
Z a;
cout << a.a;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
在上述情况下,Z():X(10){} Base(int k):a(k)不打电话,但是当我改变Z():Base(10){}了Base(int k):a(k)被调用.为什么?
谢谢.