保持原有特性:繼承
?新增自己的特性:派生
基類/父類:被繼承的已有類(共性)
派生出的新類:派生類 (特性)
可以繼承:除構造/析構/靜態成員以外的所有
吸收:基類除構造/析構/靜態成員以外的所有成員
改造:
新添:
公有繼承:
私有繼承:
保護繼承:
前提:
(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 乙個派生類可以同時有多個基類,這種情況稱為...