close

按此前往C++完整教學目錄

 

 

多重繼承虛擬基礎類別

(a) 一個類別可以被許多不同類別繼承,而一個類別也可以繼承許多不同類別(這稱為多重繼承),如:

class A{//類別內容};

class B{//類別內容};

class C : public A, public B{//類別內容};  //類別C繼承了類別A,也繼承了類別B

做圖為:

ss

 

 

(b) 若有一種繼承形態為:

image

乍看之下,程式碼似乎應該是:

class A{//類別內容};

class B : public A{//類別內容};

class C : public A{//類別內容};

class D : public B, public C{//類別內容};

但這種繼承形態之下,類別D繼承了類別A兩次。事實上,為避免資料重複存取造成系統資源浪費或出錯,正確的程式碼應該是:

class A{//類別內容};

class B : virtual public A{//類別內容};  //利用virtual關鍵字B類別設成相對於D虛擬基礎類別

class C : virtual public A{//類別內容};  //利用virtual關鍵字C類別設成相對於D虛擬基礎類別

class D : public B, public C{//類別內容};

 

 

上一篇:類別(class) 衍生類別的建構式

下一篇:類別(class) 衍生類別物件的複製

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()