class B
{
public:
B(char c = 'a') : m_c(c) {}
public:
fun();
private:
char m_c;
};
class C: virtual public B
{ };
class D: virtual public B
{ };
class E
: public C
, public D
{ };
我只是想知道「虛擬」關鍵字是如何幫助該類E只有一個類B的副本?什麼虛擬關鍵字在「C類」做了什麼,以便稍後影響其派生類(正如你可以理解的,我只是想了解虛擬繼承的基本工作。我試圖找出這個問題的答案,但沒有得到它是否正確,如果任何人知道任何良好的聯繫,即使這可以幫助。)。換句話說,虛擬繼承如何工作
//1)
class C: virtual public B
{ };
//2)
class C: public B
{ };
如果我們不進一步駕駛C類,在創建它的對象時,1)和2)之間會有什麼特別的區別。
此鏈接可能對您有用:http://en.wikipedia.org/wiki/Virtual_inheritance –