第四章 派生類與繼承

一卖子、基類或父類

派生類或子類

1、繼承方式有三種:public private protected

默認的是private

2官觅、派生類對基類成員的訪問形式:

????(1)內(nèi)部訪問:由派生類中新增加的成員函數(shù)對從基類繼承來的成員的訪問

????(2)對象訪問:在派生類的外部纵菌,通過派生類的對象對從基類繼承來的成員的訪問

小結(jié):

protected[基類成員內(nèi)型]——public[派生類繼承方式]——protected

public[基類成員內(nèi)型]——protected[派生類繼承方式]——protected

對于基類的私有成員:可以通過基類提供的公有成員函數(shù)訪問


二、派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)

1休涤、執(zhí)行順序

(1)當創(chuàng)建派生類對象時

? ? ? 基類的構(gòu)造函數(shù)——>派生類的構(gòu)造函數(shù)

(2)當撤消派生類對象時

? ? ? 派生類的析構(gòu)函數(shù)——>基類的析構(gòu)函數(shù)

若所定義的派生類構(gòu)造函數(shù)的函數(shù)體為空,僅僅起參數(shù)的傳遞作用

三咱圆、調(diào)整基類成員在派生類中的訪問屬性的其他方法

如果在派生類中定義了與基類成員同名的成員,則派生類成員覆蓋了基類的同名成員

問題的提出:

? 能否使私有繼承的派生類的對象訪問基類的公有成員或保護成員。

解決方法1 :通過公有成員函數(shù)間接訪問

解決方法2:使用訪問聲明

注:

(1)訪問聲明中只能含不帶類型和參數(shù)的函數(shù)名或變量名。

(2)數(shù)據(jù)成員也可以使用訪問聲明

(3)訪問聲明不能改變類成員在基類中原來的性質(zhì)

(4)對于基類中的重載函數(shù)使用訪問聲明時要慎重

四序苏、多重繼承

當一個派生類具有多個基類時手幢,這種派生方法稱為多重派生多重繼承

易存在二義性

使用成員名限定可以消除二義性忱详,例如:

obj.X∷f()弯菊;//調(diào)用類X的f()

obj.Y∷f();//調(diào)用類Y的f()

五踱阿、虛基類

為什么要引入虛基類管钳?

如果一個派生類是從多個基類派生出來的,而這些基類又有一個共同的基類软舌,

則在這個派生類中訪問這個共同的基類中的成員時才漆,可能會產(chǎn)生二義性。

解決辦法2:

為了解決這種二義性佛点,使從不同的路徑繼承的基類的成員在內(nèi)存中只擁有一個拷貝,引入了虛基類的概念醇滥。[?如果將公共基類說明為虛基類。那么超营,對同一個虛基類的構(gòu)造函數(shù)只調(diào)用一次(第一次出現(xiàn)的時候調(diào)用)鸳玩,這樣從不同的路徑繼承的虛基類的成員在內(nèi)存中就只擁有一個拷貝]

構(gòu)造函數(shù)執(zhí)行順序:B()-> B1()-> B()-> B2()-> D()? 引入虛基類后: B()-> B1()-> B2()-> D()

class 派生類名:繼承方式 virtual 基類名

{? … }

class? 派生類名: virtual 繼承方式 基類名

{? … }

引入虛基類的用意


六、基類與派生類對象之間的賦值兼容關(guān)系

(1) 可以用派生類對象給基類對象賦值演闭。

例如:

Base b;? ? ? //定義基類Base的對象b

Derived d;? //定義公有派生類Derived的對象d

b=d;//對象b中數(shù)據(jù)成員將具有對象d中對應(yīng)數(shù)據(jù)成員的值不跟。

說明:所謂賦值僅僅指對基類的數(shù)據(jù)成員賦值

(2) 可以用派生類對象來初始化基類對象的引用米碰。

? 例如:

? Base b;? ? ? ? ? //定義基類Base的對象b

? Derived d;? ? ? ?//定義基類Base的公有派生類

? Base& br=d;?? //Derived的對象d 窝革, 定義基類Base的對象的引用br,并用派生類Derived的對象d對其初始化

(3) 派生類對象的地址可以賦給指向基類對象的指針

? 例如:

? Derived d;? ? //定義基類Base的公有派生類

? Base* bp=&d;? //Derived的對象d?

把派生類對象的地址&d賦值給指向基類的指針bp,也就是說,使指向基類對象的指針bp指向派生類對象d。

(4) 如果函數(shù)的形參是基類對象或基類對象的引用,在調(diào)用函數(shù)時可以用派生類對象作為實參吕座。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虐译,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吴趴,更是在濱河造成了極大的恐慌漆诽,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锣枝,死亡現(xiàn)場離奇詭異厢拭,居然都是意外死亡,警方通過查閱死者的電腦和手機惊橱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門蚪腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人税朴,你說我怎么就攤上這事回季〖抑疲” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵泡一,是天一觀的道長颤殴。 經(jīng)常有香客問我,道長鼻忠,這世上最難降的妖魔是什么涵但? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮帖蔓,結(jié)果婚禮上矮瘟,老公的妹妹穿的比我還像新娘。我一直安慰自己塑娇,他們只是感情好澈侠,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著埋酬,像睡著了一般秆乳。 火紅的嫁衣襯著肌膚如雪惕耕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天笛臣,我揣著相機與錄音馅笙,去河邊找鬼廷雅。 笑死届谈,一個胖子當著我的面吹牛晓褪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播次坡,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼呼猪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了砸琅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤轴踱,失蹤者是張志新(化名)和其女友劉穎症脂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淫僻,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡诱篷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了雳灵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棕所。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悯辙,靈堂內(nèi)的尸體忽然破棺而出琳省,到底是詐尸還是另有隱情迎吵,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布针贬,位于F島的核電站击费,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏桦他。R本人自食惡果不足惜蔫巩,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望快压。 院中可真熱鬧圆仔,春花似錦、人聲如沸蔫劣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拦宣。三九已至截粗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸵隧,已是汗流浹背绸罗。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留豆瘫,地道東北人珊蟀。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像外驱,于是被迫代替她去往敵國和親育灸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容