c++繼承篇(is a,public protected private)

1.隱藏 派生類中定義和基類中一樣的成員變量或成員函數

結果是: 派生類對象直接調用的是派生類裏面的成員,基類的成員被隱藏

要想通過派生類對象調用基類成員也可以,在成員前面加上類名:: soldier.Person::eat();

 

2.is a

派生類對象可以給基類對象賦值,或函數形參時,本來應該傳基類對象,傳派生類對象也行。派生類比基類多的成員自動丟棄,其他賦值。

不管繼承了多少次,只要存在繼承關係的(包括間接),派生類和基類都是is a的關係

 

3.多重繼承和多繼承

4.虛繼承

繼承前面加virtual 菱形繼承中避免間接繼承兩次的基類後,有兩份基類成員,造成數據冗餘

不加virtual的話就有兩份數據,加的話只有一份,且不能通過虛繼承的類改變基類成員的值。

5

1.如果子類從父類繼承時使用的繼承限定符是public,那麼

(1)父類的public成員成爲子類的public成員,允許類以外的代碼訪問這些成員;

(2)父類的private成員仍舊是父類的private成員,子類成員不可以訪問這些成員;

(3)父類的protected成員成爲子類的protected成員,只允許子類成員訪問;

2.如果子類從父類繼承時使用的繼承限定符是private,那麼

(1)父類的public成員成爲子類的private成員,只允許子類成員訪問;

(2)父類的private成員仍舊是父類的private成員,子類成員不可以訪問這些成員;

(3)父類的protected成員成爲子類的private成員,只允許子類成員訪問;

3.如果子類從父類繼承時使用的繼承限定符是protected,那麼

(1)父類的public成員成爲子類的protected成員,只允許子類成員訪問;

(2)父類的private成員仍舊是父類的private成員,子類成員不可以訪問這些成員;

(3)父類的public成員成爲子類的protected成員,只允許子類成員訪問;

 

public protected private限定符:

public內部直接用,外部可以調用

protected內部直接用,外部不能用,子類可以直接用

private 內部直接用,外部和子類不能用

發佈了50 篇原創文章 · 獲贊 32 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章