繼承

繼承:
可以理解為一個(gè)類從另一個(gè)類中獲取成員變量和成員函數(shù)的過(guò)程. eg:B類繼承于 A類, 那么B 就擁有 A 的成員變量和成員函數(shù). 被繼承的類稱為父類或者基類, 繼承的類稱為子類或者派生類.

派生類除了擁有基類的成員, 還可以定義自己的成員函數(shù)和成員變量.

class 派生類名: [繼承方式] 基類名 {
派生類的新成員;
};
// 繼承承方式限定了基類成員在派生類中的訪問(wèn)權(quán)限瓤逼,包括 public(公有的)敢艰、private(私有的)和 protected(受保護(hù)的)跟继。此項(xiàng)是可選的,如果不寫钓丰,默認(rèn)為 private 或 protected。

(1) public 繼承方式

  • 基類中所有public 成員在派生類中的屬性為 public;
  • 基類中所有 protected 成員在派生類中的屬性為 protected;
  • 基類中所有 private 成員在派生類中是不可訪問(wèn)的.

(2) protected 繼承方式

  • 基類中所有的 public 成員在派生類中為 protected 屬性;
  • 基類中所有的 protected 成員在派生類中為protected 屬性;
  • 基類中所有的 private 成員在派生類中是不可訪問(wèn)的.

(3) private 繼承方式

  • 基類中所有的 public 成員在派生類中都為 private 屬性;
  • 基類中所有的 protected 成員在派生類中都為 private 屬性;
  • 基類中所有的 private 成員在派生類中都是不可訪問(wèn)的.

基類的構(gòu)造函數(shù)不能被派生類繼承, 在聲明派生類時(shí), 對(duì)繼承過(guò)來(lái)的成員變量的初始化工作也要由派生類的構(gòu)造函數(shù)來(lái)完成. 所以在設(shè)計(jì)派生類的構(gòu)造函數(shù)時(shí), 不僅要考慮派生類新增的成員變量, 還要考慮基類的成員變量, 要讓他們都被初始化.

解決這個(gè)問(wèn)題的思路是:在執(zhí)行派生類的構(gòu)造函數(shù)時(shí), 調(diào)用基類的構(gòu)造函數(shù).

事實(shí)上, 通過(guò)派生類創(chuàng)建對(duì)象時(shí), 必須調(diào)用基類的構(gòu)造函數(shù).

當(dāng)創(chuàng)建對(duì)象時(shí), 會(huì)先調(diào)用基類的構(gòu)造函數(shù), 再調(diào)用派生類的構(gòu)造函數(shù).(自基類向派生類)

析構(gòu)函數(shù)是不能被繼承的.

析構(gòu)函數(shù)的調(diào)用時(shí)與構(gòu)造函數(shù)的調(diào)用順序相反, 先調(diào)用派生類的析構(gòu)函數(shù), 再調(diào)用基類的析構(gòu)函數(shù).

多繼承:
http://c.biancheng.net/cpp/biancheng/view/2986.html
這個(gè)例子很好的說(shuō)明了:基類對(duì)象和派生類對(duì)象之間的賦值僅僅是對(duì)應(yīng)的成員變量的賦值训唱,不會(huì)影響成員函數(shù)刽虹,不會(huì)影響 this 指針。

virtual:
借助虛函數(shù), 基類指針既可以調(diào)用基類的成員函數(shù), 也可以使用派生類的成員函數(shù), 它有多種形態(tài), 或多種表現(xiàn)方式, 這就是多態(tài).

多態(tài)是面向?qū)ο蟮闹饕卣? 在 c++中, 虛函數(shù)的唯一作用就是構(gòu)成多態(tài).

C++提供多態(tài)的目的是: 可以通過(guò)基類指針對(duì)所有派生類(包括直接派生類和簡(jiǎn)介派生類) 的成員變量和成員函數(shù)進(jìn)行"全方位"的訪問(wèn), 尤其是成員函數(shù). 如果沒(méi)有多態(tài), 我們只能訪問(wèn)成員變量.

構(gòu)成多態(tài)的條件:

  • 必須存在繼承關(guān)系;
  • 繼承關(guān)系中必須有同名的虛函數(shù), 并且它們是覆蓋關(guān)系 (重載不行).
  • 存在基類的指針, 通過(guò)改制這調(diào)用虛函數(shù).

Note:

  • 派生類中的虛函數(shù)必須覆蓋(不是重載)基類的虛函數(shù), 才能通過(guò)基類指針訪問(wèn).

有虛函數(shù)才能構(gòu)成多態(tài),

另外注意:

  1. virtual 關(guān)鍵字僅用于函數(shù)聲明, 如果函數(shù)是在類外定義, 則不需要再加上 virtual 關(guān)鍵字.
  2. 為了方便, 你可以只將基類中的函數(shù)聲明為虛函數(shù), 所有派生類中具有覆蓋關(guān)系的同名函數(shù)都將自動(dòng)成為虛函數(shù).
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讯壶,一起剝皮案震驚了整個(gè)濱河市料仗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伏蚊,老刑警劉巖立轧,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡氛改,警方通過(guò)查閱死者的電腦和手機(jī)帐萎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胜卤,“玉大人疆导,你說(shuō)我怎么就攤上這事「瘐铮” “怎么了澈段?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)舰攒。 經(jīng)常有香客問(wèn)我败富,道長(zhǎng),這世上最難降的妖魔是什么摩窃? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任兽叮,我火速辦了婚禮,結(jié)果婚禮上猾愿,老公的妹妹穿的比我還像新娘鹦聪。我一直安慰自己,他們只是感情好蒂秘,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布泽本。 她就那樣靜靜地躺著,像睡著了一般材彪。 火紅的嫁衣襯著肌膚如雪观挎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天段化,我揣著相機(jī)與錄音嘁捷,去河邊找鬼。 笑死显熏,一個(gè)胖子當(dāng)著我的面吹牛雄嚣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喘蟆,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼缓升,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蕴轨?” 一聲冷哼從身側(cè)響起港谊,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎橙弱,沒(méi)想到半個(gè)月后歧寺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燥狰,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年斜筐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了龙致。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顷链,死狀恐怖目代,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗤练,我是刑警寧澤榛了,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站煞抬,受9級(jí)特大地震影響忽冻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜此疹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遮婶。 院中可真熱鬧蝗碎,春花似錦、人聲如沸旗扑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)臀防。三九已至眠菇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間袱衷,已是汗流浹背捎废。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留致燥,地道東北人登疗。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嫌蚤,于是被迫代替她去往敵國(guó)和親辐益。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • 一、繼承和多態(tài)在面向?qū)ο缶幊讨邢潋穑^承(也稱為派生)讓您能夠創(chuàng)建新類续捂,而這些類繼承了父類(也稱為基類)的特征和行為垦垂。...
    CarlDonitz閱讀 834評(píng)論 0 2
  • 繼承和多態(tài) 1. 繼承的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):(1)子類可以靈活地改變父類中的已有方法;(2)能夠最大限度的實(shí)現(xiàn)代碼重用疾忍。...
    MinoyJet閱讀 620評(píng)論 0 0
  • C++ 基礎(chǔ) 概念及工方式 保持已有類的特性而構(gòu)造新類的過(guò)程稱為繼承乔外。在已有類的基礎(chǔ)上新增自己的特性而產(chǎn)生新類的過(guò)...
    I踏雪尋梅閱讀 298評(píng)論 0 2
  • 《摔跤吧,爸爸》 看到好多朋友推薦這部電影一罩,好奇心的我也看了下杨幼,阿米爾·汗是我很敬重的演員,我不是衬粼ǎ看電影差购,但這位...
    百日跑者孫大剩閱讀 357評(píng)論 7 8
  • 去年大熱的臺(tái)灣青春愛(ài)情電影《我的少女時(shí)代》,講述了普通少女林真心與校草歐陽(yáng)非凡汉嗽、校霸徐太宇之間的青春戀愛(ài)故事欲逃,劇情...
    浮生如夢(mèng)亦如書閱讀 913評(píng)論 1 2