【C++】類之間的關(guān)系組合、委托和繼承
1、類的組合Composition關(guān)系舉例(一個類A包含另一個類B的對象),箭頭是黑色實心

1.1、從內(nèi)存的角度來看Composition關(guān)系

1.2、組合關(guān)系的類的構(gòu)造和析構(gòu)函數(shù)的關(guān)系(構(gòu)造由內(nèi)而外,析構(gòu)由外而內(nèi))
構(gòu)造函數(shù)有多個,編譯器默認(rèn)會調(diào)用 默認(rèn)構(gòu)造函數(shù)

2? 委托,一個類A包含另一個類B的引用(指針),組合關(guān)系中A,B是同時存在,委托關(guān)系中,A存在,但是B的對象不一定存在,因為A中通過指針指向B,B可以不存在。

2.2 委托的主要目的,A負(fù)責(zé)提供接口,B負(fù)責(zé)具體的實現(xiàn)(注意這里B可以是A的友元類), A相當(dāng)于客戶端顯示,B是底層具體的操作,B的變動不會影響客戶端的顯示;這樣A只需要編譯一次,B如果有改動則只編譯B部分就可以了。
2.3 實現(xiàn)body共享,a,b,c都是String對象,他們中的指針同時指向 StringRep的一個對象,這個對象包含了一個字符,

3.1 繼承 Inheritance
構(gòu)造由內(nèi)而外,析構(gòu)由外而內(nèi);?


標(biāo)簽: