C 繼承與派生

2021-10-05 12:28:13 字數 1515 閱讀 8184

保持原有特性:繼承

?新增自己的特性:派生

基類/父類:被繼承的已有類(共性)

派生出的新類:派生類 (特性)

可以繼承:除構造/析構/靜態成員以外的所有

吸收:基類除構造/析構/靜態成員以外的所有成員

改造:

新添:

公有繼承:

私有繼承:

保護繼承:

前提:

(base1類中有display函式)#前提1

void

fun(base1* ptr)

多繼承時:son::son(int a,int b,int c):father(a),mother(b),son(s)

多繼承+有內嵌物件時:

son::son(int a,int b,int c):father(a),mother(b),son(s),本類物件成員和基本型別成員初始化

建構函式的執行順序:

呼叫基類建構函式:按宣告時順序

對成員(本類成員/基本型別成員/物件成員)初始化:按類體中宣告的順序

執行派生類建構函式

隱藏:子類與父類有同名成員,子類物件呼叫時用的是子類成員

去隱藏:父類::修飾

d.var =1;

//子類物件訪問同名成員,預設本類成員

d.fun()

;d.base1::var =2;

//子類物件要訪問父類成員,父類::修飾

d.base1::

fun(

);

類名限定

在子類中宣告同名函式隱藏兩個基類,在子類中根據需要呼叫a::f()/b::f()

有爺,兩個爸,乙個兒子時,將爺虛基,避免二義性+簡化子類到爺類的訪問

class

base1

:virtual

public base0 {

//1繼承0;0是虛基類

大大簡化了子類資料成員(可以不通過兩個爸,直接到爺)

C 繼承與派生

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

c 繼承與派生

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

c 繼承與派生

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