多繼承與多重繼承

2021-07-30 23:48:47 字數 531 閱讀 2277

什莫是多繼承?

乙個類擁有兩個或者兩個以上的父類

什莫是多重繼承?

乙個類不僅僅有父類還有祖父類

什莫是虛繼承?

虛繼承是為了解決多繼承的問題.經過這樣的宣告後,當基類通過多條派生路徑被乙個派生類繼承時,該派生類只繼承該基類一次,也就是說,基類成員只保留一次。

菱形繼承:

以往,在派生類的建構函式中只需負責對其直接基類初始化,再由其直接基類負責對間接基類初始化。現在,由於虛基類在派生類中只有乙份資料成員,所以這份資料成員的初始化必須由派生類直接給出。如果不由最後的派生類直接對虛基類初始化,而由虛基類的直接派生類(如類b和類c)對虛基類初始化,就有可能由於在類b和類c的建構函式中對虛基類給出不同的初始化引數而產生矛盾。所以規定:在最後的派生類中不僅要負責對其直接基類進行初始化,還要負責對虛基類初始化。

//由於b,c擁有同乙個父類,並且虛繼承過來的

class d: public b, public c

//d類建構函式,在初始化列表中對所有基類進行初始化

};

C 多繼承 多重繼承

派生類都只有乙個基類,稱為單繼承。除此之外,c 也支援多繼承,即乙個派生類可以有兩個或多個基類。多繼承的語法也很簡單,將多個基類用逗號隔開。例如已宣告了類a 類b和類c,那麼可以這樣來宣告派生類d class d public a,private b,protected c d 是多繼承形式的派生類...

C 繼承5 多重繼承 多繼承

多重繼承 1.person類,資料成員 m strname 成員函式 構造 析構 pay 2.soldier類,資料成員 m iage 成員函式 構造 析構 work 3.infantry類,資料成員 無 成員函式 構造 析構 attack 4.定義函式test1 person p test2 pe...

C 學習之繼承篇(多繼承與多重繼承)

1.多繼承 多繼承是指乙個子類繼承多個父類。多繼承對父類的個數沒有限制,繼承方式可以是公共繼承 保護繼承和私有繼承,不寫繼承方式,預設是private繼承 多繼承舉例 include include include using namespace std 定義工人類 worker 資料成員 m st...