在下面的代碼Multi Path Inheritance
通過使用Virtual Class
如何做的構造工作解決了嗎? 構造函數不能被繼承或虛擬或靜態。多徑繼承和
/*Multi Path Inheritance*/
class A{
public:
int a;
A(){
a=50;
}
};
class B:virtual public A{
public:
/*B(){
a = 40;
}*/
};
class C:virtual public A{
public:
/*C(){
a = 30;
}*/
};
class E:virtual public A{
public:
E(){
a = 40;
}
};
class D : public B, public C, public E{
public:
D(){
cout<<"The value of a is : "<<a<<endl;
}
};
int main(int argc, char *argv[]){
D d;
return 0;
}
的http://stackoverflow.com/questions/419943/virtual-inheritance – nouney
可能重複的所有構造函數的調用開始基礎類到莫stvivived。的 –
可能重複的[在C++中,什麼是一個虛基類?](http://stackoverflow.com/questions/21558/in-c-what-is-a-virtual-base-class) – RiaD