簡介:代碼重用機(jī)制:組合(composition)與繼承(inheritance)
14.1 組合語法
訪問嵌入對象(子對象)的成員函數(shù)只需要再一次的成員選擇。
14.2 繼承語法
在類的左括號前,加一個(gè)冒號和基類的名字,對于多個(gè)基類,用逗號分開。
14.3 構(gòu)造函數(shù)的初始化表達(dá)式表
如果沒有顯示的進(jìn)行偽構(gòu)造函數(shù)的調(diào)用,初始化是不會執(zhí)行的。
14.4 組合和繼承的聯(lián)合
只有通過繼承才能重現(xiàn)定義它的函數(shù)。而對于成員對象,只能操作這個(gè)對象的公共接口,而不能重新定義它。
構(gòu)造是從類層次的最根處開始,而在每一層,首先會調(diào)用基類構(gòu)造函數(shù),然后調(diào)用成員對象構(gòu)造函數(shù)。調(diào)用析構(gòu)函數(shù)則嚴(yán)格按照構(gòu)造函數(shù)相反的次序。
14.5 名字隱藏
14.6 非自動(dòng)繼承的函數(shù)
構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被繼承,必須為每一個(gè)特定的派生類分別創(chuàng)建。
operator= 也不能被繼承。
繼承和靜態(tài)成員函數(shù)(靜態(tài)成員函數(shù)與非靜態(tài)成員函數(shù)的共同點(diǎn)):
1. 它們均可以被繼承到派生類中
2. 如果我們重新定義了一個(gè) 靜態(tài)成員,所有在基類中的其他重載函數(shù)會被隱藏
3. 如果我們改變了基類中一個(gè)函數(shù)的特征,所有使用該函數(shù)名字的基類版本都將會被隱藏
14.7 組合與繼承的選擇
組合通常是希望新類內(nèi)部具有已存在類的功能時(shí)使用,而不是希望已存在了類作為它的接口。
14.8 protected
protected:就這個(gè)類的用戶而言,它是private的,但它可以被從這個(gè)類繼承來的任何類使用。
14.9 運(yùn)算符的重載和繼承
14.10 多重繼承
14.11 漸曾式開發(fā)
14.12 向上類型轉(zhuǎn)換