C 課程小結 繼承與派生

2022-02-06 19:42:58 字數 1935 閱讀 5415

單繼承與多重繼承的區別

單繼承:乙個子類(派生類)只有乙個父類(只由乙個基類派生而成)

多繼承:乙個子類(派生類)有多個父類(由多個基類派生而成)

派生類的構成

(1) 從基類繼承過來的成員(包括資料成員和成員函式)

(2) 在派生類裡面新增的成員(包括資料成員和成員函式)

根據繼承方式的不同來調整從基類繼承過來成員的屬性(public,protected,private。最經常使用protected)

派生類的建構函式需要自己定義和宣告,不能從基類繼承過來,定義的時候需要呼叫其父類的建構函式。

基類成員的接受

注意點:

1.在派生類裡可以定義同名資料成員進行覆蓋。

2.不接受構造析構函式。

3.通過繼承方式改變訪問屬性。

基類不能訪問其派生類的新增成員。對於派生類訪問基類的成員,如何確定基類成員在派生類中的訪問屬性?

1.基類成員宣告時的訪問屬性

2.繼承方式

public 繼承下,派生類賦值給父類

1.不能用基類物件對其派生類物件賦值。

2.同一基類的不同派生類的物件之間不能賦值。

3.派生類物件可以向其基類的物件及其引用進行賦值。

4.如果函式引數是基類a的引用,那麼實參可以為其派生類的物件,系統自動完成型別轉換。

void play(student &b)

undergraduate a("liming", 20, 10005, 100);

play(a);

5.指向基類物件的指標也可以指向派生類物件。即 派生類物件的位址可以賦值給指向其基類的指標。

指向基類的指標變數 只能訪問 派生類物件 的 繼承基類的部分,不能訪問 派生類增加的成員

關於public private protected 的問題

個人認為,protected 是最合適的繼承方式,public 繼承雖然完整保留了基類,但是在主函式也可以訪問其繼承下來的基類成員,不利於封裝性。 private 繼承只能在其派生類裡訪問基類成員,而且根據上文的**,其型別均為private,導致其派生類訪問基類的成員很不方便。折中之下,protected 繼承既有利於保護封裝性,也讓派生類方便訪問其繼承的基類成員。

C 繼承與派生

派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...

c 繼承與派生

繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...

c 繼承與派生

一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...