Boolan C++面向?qū)ο蟾呒?jí)編程(上)第三周

類之間的關(guān)系

在本次課程中,類與類之間的關(guān)系被分為三種:復(fù)合、繼承、委托。

復(fù)合Composition

復(fù)合可以表示為has-a
class A has a class B.


對(duì)于復(fù)合,各自負(fù)責(zé)各自的構(gòu)造和析構(gòu)就可以,構(gòu)造Container時(shí),需要先構(gòu)造Component,這一步是由編譯器來幫我們實(shí)現(xiàn)的。需要注意的是編譯器幫我們構(gòu)造Component時(shí),采用的是默認(rèn)的構(gòu)造函數(shù),若默認(rèn)構(gòu)造函數(shù)不是我們想要的時(shí)候,就需要自己按照上圖的格式,利用構(gòu)造Container時(shí)的初值列來先完成Component的構(gòu)造

委托Delegation (Composition by reference)


左邊通過指針指向右邊,在左邊需要右邊的時(shí)候就可以通過指針來調(diào)用右邊。

這樣做的一個(gè)好處是,左邊永遠(yuǎn)不用變,但是可以通過指針指向不同的右邊來實(shí)現(xiàn)不同的功能

繼承

繼承可以表示為is-a


對(duì)于構(gòu)造與析構(gòu),繼承與復(fù)合一致。
先調(diào)用父類的構(gòu)造函數(shù),再執(zhí)行自己的構(gòu)造函數(shù)。先執(zhí)行自己的析構(gòu)函數(shù),再調(diào)用父類的析構(gòu)函數(shù)。
注意!!!!!
父類的析構(gòu)函數(shù)必須是虛函數(shù)!

虛函數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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