我有關於虛擬基類的問題。創建虛擬基類對象
class a
{
public:
a();
~a();
};
class b: virtual public a
{
public:
b();
~b();
};
class c: virtual public a
{
public:
c();
~c();
};
class e: public b, c
{
public:
e();
~e();
};
每當我創建e
類的一個對象,通過該類a
對象將在e
產生的呢?
通過任何一個。虛擬基類與從它們繼承的類是「分離的」(這實際上是虛擬繼承的本質)。你甚至可以像'e :: e():a(bla),b(),c(){...}一樣調用'a'的非默認構造函數' –