窗體頂端
繼承?復(fù)合?委托
復(fù)合Comosition表示?has?a
設(shè)計模式 Adapter(改造 適配 配接)
queue可以使用duque已經(jīng)完成的功能
上圖相當(dāng)于只開放了deque的其中六個功能 而且名字也換了(既)
???
從內(nèi)存角度理解composition
(紅色部分 是編譯器加上的)
Delegation委托 (另一個術(shù)語composition by reference)
指針傳值也叫by reference
只是指針指向右邊 但什么時候擁有右邊還未知
pImpl
復(fù)合與委托的區(qū)別
前者:有了外部就有的內(nèi)部 內(nèi)外一起出現(xiàn)
后者:左右不同步
左邊只是接口,實現(xiàn)都在右邊 (稱為:pimpl ?or ?handle\body 也稱為編譯防火墻)
如何做到動n不改變abc?
如a想改變,則copy一份給a來改,bc繼續(xù)共享n
補(bǔ)充:class與struct的區(qū)別
Inheritance繼承,表示 is a
有三種繼承方式
Public (表示 是一種) ?
Private ??
protected
最重要的是第一種
父類的數(shù)據(jù)被完整繼承下來
在希望子類重新定義的構(gòu)造函數(shù)前面加virtual
pure?virtual?:子類必須定義
繼承搭配虛函數(shù)的例子
teoplate?method
繼承加復(fù)合
這兩種類型中每個類的構(gòu)造和析構(gòu)的調(diào)用順序?
委托加繼承?
Observer
Composite
注:vertor容器中只能放指針
prototypr
—>
已知設(shè)計模式匯總:
Adapter? handl/body(pImpl)????? singlton??? ?template methond? ??? observer???? composite??? prototype