C 中類的繼承(一) 學習筆記

2021-09-26 07:31:09 字數 1281 閱讀 9065

一、類的繼承

1、共性與個性

表達不同型別事物之間公有的屬性和行為。

個性用於刻畫每種事物特有的屬性和行為。

2、共性表示為父類(基類),個性表示為子類(派生類)。

子類繼承自父類

基類派生出子類

二、繼承的基本語法

1、繼承表

乙個子類可以同時繼承零到多個父類,每個父類的繼承方式可以相同也可以不同。

class 子類:繼承方式1 父類1,繼承方式2 父類2,...

2、繼承方式

public 公有繼承:父類的特性可通過子類向外擴充套件。

private 私有繼承:父類的特性只能為子類所有。

protected 保護繼承:父類的特性只能在繼承鏈內擴充套件。

三、繼承的基本特點

1、公共特點(所有繼承都有的特點)

子類物件可以當作父類物件使用,子類物件與父類沒有本質上的區別。

子類的邏輯空間小於父類,但它的物理空間要大於等於父類。

子類物件 is a 父類物件

2、向上和向下轉換(造型)

從子類到父類:子類的指標或引用可以隱式轉換成父類的指標或引用,這是一種縮小型別的轉換,對於編譯器來說是安全的。

從父類到子類:父類的指標或引用不可以轉換成子類的指標或引用,這是一種擴大型別的轉換,在編譯器看來是危險的。(子類的指標指向父類的物件,不安全)

編譯器僅僅是檢查指標或引用的資料型別,而對實際引用的目標物件不關心(構成多型的基礎)。

型別一致:父類的指標或引用實際的目標型別是否需要轉換成實際的指標或引用由程式自己決定。

3、子類會繼承父類的所有成員(公有,私有,保護)

4、子類會隱藏父類的同名成員

1.可以通過域限定符 父類::隱藏成員 進行訪問父類中的隱藏成員

2.可以使用父類的指標或引用來指向子類物件,然後訪問父類中的隱藏成員。

5、雖然子類繼承所有父類中的成員,但不能訪問父類中的私有成員。

四、繼承方式影響訪問控制

C 學習筆記 類的繼承(一)

由c 構成的抽象世界存在is a kind of 的關係 例如 在c 裡,由繼承的語法來表示is lind of的關係 class file class videofile public file 語法 class b public a 表示類b繼承於類a,把a稱為父類 基類 把b稱為子類 派生類 ...

c 學習筆記 類繼承

現在有乙個記錄身份id的類 ifndef head h define head h include include using namespace std class idcard endif 實現部分 include head.h idcard idcard const string n,cons...

C 學習筆記 類的繼承(派生類)

1 引言 馬克思說 世界是聯絡的,哈哈。搞笑了。進入正題,現實中的乙個概念不是鼓勵存在的,總是與一些相關的概念存在的,他們之間總是相互聯絡的,而且他們之間會表現出一種層次的關係,共性 層次 我們就引出了派生類的概念。2 派生類 1 employee與manager struct employee s...