C 繼承5 多重繼承 多繼承

2021-09-22 02:01:16 字數 1244 閱讀 4613

/*多重繼承:

1.person類,資料成員:m_strname 成員函式:構造、析構、pay()

2.soldier類,資料成員:m_iage 成員函式:構造、析構、work()

3.infantry類,資料成員:無 成員函式:構造、析構、attack()

4.定義函式test1(person p) test2(person &p) test3(person *p)

*///虛析構函式 當存在繼承關係的時候,使用父類的指標去指向堆中的子類的物件

//並且還需要父類的指標去釋放這塊記憶體的時候就需要虛析構函式

class person

int main(void)

執行結果:

(1)當例項化子類時,會首先依次呼叫所有基類的建構函式,最後呼叫該子類的建構函式;銷毀該子類時,則相反,先呼叫該子類的析構函式,再依次呼叫所有基類的析構函式。

(2)無論繼承的層級有多少層,只要它們保持著直接或間接的繼承關係,那麼子類都可以與其直接父類或間接父類構成 is a的關係,並且能夠通過父類的指針對直接子類或間接子類進行相應的操作。

#include#includeusing namespace std;

/*多繼承

1.famer類,資料成員:m_strname,成員函式:構造、析構、sow()

2.worker類,資料成員:m_strcode,成員函式:構造、析構、carry()

3.migrantworker類,資料成員:無,成員函式:構造、析構

*/class farmer

執行結果:

由輸出結果可以看出,在多繼承中,子類可以呼叫多個父類的成員函式,在例項化子類時,先根據繼承的順序依次呼叫父類的建構函式,然後再呼叫該子類自己的建構函式。

C 多繼承 多重繼承

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

多繼承與多重繼承

什莫是多繼承?乙個類擁有兩個或者兩個以上的父類 什莫是多重繼承?乙個類不僅僅有父類還有祖父類 什莫是虛繼承?虛繼承是為了解決多繼承的問題 經過這樣的宣告後,當基類通過多條派生路徑被乙個派生類繼承時,該派生類只繼承該基類一次,也就是說,基類成員只保留一次。菱形繼承 以往,在派生類的建構函式中只需負責對...

python多重繼承 多繼承相關

1 使用父類名.方法名呼叫父類方法 class parent def init self,name self.name name print parent的init方法被呼叫 class son1 parent def init self,name,age self.age age parent.i...