考慮virtual函式以外的其它選擇

2022-09-11 18:51:10 字數 341 閱讀 6734

詳情見《effective c++》item35

1.使用non-virtual inte***ce(nvi)手法,這是template method設計模式的一種特殊形式。

它以public non-virtual成員函式包裹較低訪問性(private 或 protected)的virtual函式。

2.strategy設計模式

a.將virtual 函式替換為「函式指標成員變數」

b.以tr1::function成員變數替換virtual函式,因而允許使用任何可呼叫物搭配乙個相容於需求的簽名式。

c.將繼承體系內virtual函式替換為另乙個繼承體系中的virtual函式。

考慮Virtual函式以外的其他選擇

方法一,基於虛函式的方法 在人物角色的基類增加乙個成員函式heathvalue,返回乙個整數,表示人物的健康程度,並將宣告為virtual 1 class gamecharacter heathvalue宣告為虛函式,因而派生類可以重新定義它,從而獲得達到不同的人物可能不同的方式計算他們的健康指數的...

C 考慮virtual函式以外的其他選擇

方法一,基於虛函式的方法 在人物角色的基類增加乙個成員函式heathvalue,返回乙個整數,表示人物的健康程度,並將宣告為virtual 1 class gamecharacter heathvalue宣告為虛函式,因而派生類可以重新定義它,從而獲得達到不同的人物可能不同的方式計算他們的健康指數的...

條款35 考慮virtual函式以外的其他選擇

大多時候,我們會自然而然的想到使用virtual手法來塑模現實中的類。但是,實際上也有別的方案可以替代virtual手法的,即 考慮virtual函式以外的其他選擇。下面介紹的便是幾種可以替代virtual的方案。1 non virtual inte ce 是template method 設計模式...