<1>組合:乙個大類中包含很多子類
class funa
;class funb
;class fun
;
<2>組合類的建構函式:當給乙個組合類傳引數時,同時要給子類傳參。
關鍵要理解為什麼這麼做?
一般情況下,資料成員會定義為類的私有成員,那麼函式成員需要用到本類的私有成員,實現某些功能,外部無法改變,那麼就需要建構函式來初始化這些資料成員,那麼作為子類,可以在組合類的建構函式的內部呼叫子類的建構函式去初始化子類,同時也可以使用c++已有的語法初始化,例如:
class funa
;class funb
;class fun
;fun::fun(funa ar,funb br):funa(ar),funb(br)//此順序是funa和funb在fun類中的定義順序,此處也呼叫了複製建構函式,如funa(ar)
也可以不按c++已有語法,例如:
fun::fun(funa ar,funb br)
<3>組合類的複製建構函式
class funa
;class funb
;class fun
;fun::fun(fun &fun):funa(fun.funa),funb(fun.funb)
//這麼寫也可以
fun::fun(fun &fun)
<4>組合類的析構函式:析構的順序與組合類中的子類物件的定義順序相反,例如上面的例子,先是呼叫funb的析構函式,然後呼叫funa的析構函式。
C 類的組合
c 中類的組合 c 中,乙個類包含另乙個類,它的建構函式的執行順序可以說是難點也是重點,最近抽空學習了下,總結如下 先拿何潔月教授上課的例子說明 class point 函式的實現 class distance 類宣告 函式的實現 類組合的建構函式設計 原則 不僅要對本類中的基本型別成員資料賦初值,...
C 類的組合
在類中定義的資料成員一般都是基本資料型別或服復合資料型別。但是還可以根據需要使用 其他類的物件作為正在宣告的資料成員。複雜的物件還可以有比較簡單的物件一某種方式組合 而成,複雜物件和組成它的簡單物件之間的關係是組合關係。在乙個類中內嵌另乙個類的物件作為資料成員,稱為類的組合。該內嵌物件稱為物件成員,...
C 學習筆記20 類的組合
定義 乙個類內嵌其他類的物件作為成員的情況,他們之間的關係是一種包含與被包含的關係。組合類的建構函式設計 當建立類的物件時,如果這個類具有內嵌物件成員,那麼各個內嵌函式物件將首先被自動建立。在建立物件時既要對本類的基本型別資料成員進行初始化,又要對內嵌物件進行初始化。類名 類名 形參表 內嵌物件1 ...