#include<iostream.h>
class A{
public:
int i;
A(int j=3):i(j){}
};
class B:virtual public A{
public:
B(int j=2):A(j){}
};
class C:virtual public A{
public:
C(int j=1):A(j){}
};
class D:public B, public C {
public:
D(int j=0):A(j), B(j+1), C(j+2){}
};
int main()
{
D d;
cout<<d.i;
return 0;
}
我無法理解最終輸出是如何爲零的。每次j以默認方式初始化爲某個固定值時,如何將類D的構造函數中初始化的值傳遞給類A?這個初始化列表是如何使用虛擬類實現的?
請告訴我們你在使用什麼*語言*,將它添加爲標籤。 – deceze
它在C++ @petrotta –