宣告 pure virtual 函式的目的是為了讓derived class 只繼承函式介面,具體實現須在derived class 中完成;
宣告impure virtual 函式的目的是為了讓 derived class 繼承該函式的介面和預設實現,通過呼叫可在此預設實現基礎上新增新的**;
宣告non-virtual 函式是為了讓derived class 繼承該函式的介面和強制性實現,絕不該在derived class 中重新定義,即不變性凌駕於特異性。
注
對pure virtual 函式進行定義的場合:個別derived classes 不可使用base class 中的virtual 函式定義,需要重新定義,將base class 中的virtual 函式改為pure virtual函式,並給出大多derived class 可重用的定義。如此可避免無法使用virtual實現的derived class忘記重新定義。
34區分介面繼承和實現繼承
函式介面繼承與函式實現繼承,在public繼承之下,derived classes總是繼承base class的介面。作為class的設計者 1.有時我們希望derived classes只繼承成員函式的介面 宣告 2.有時我們會希望derived classes同時繼承函式的介面與實現,但是又希望...
條款34 區分介面繼承和實現繼承
作為乙個 class 的設計者 1 有的時候你想要 derived classes 只繼承乙個 member function 的 inte ce declaration 宣告乙個 pure virtual function的目的是使 derived classes 繼承乙個函式 inte ce o...
C Item34 區分介面繼承和實現繼承
區分介面繼承和實現繼承 類包含的成員函式種類 1.靜態函式 2.非靜態函式 2.1 普通函式 非虛 non virtual 2.2 虛函式 2.2.1 純虛函式 pure virtual 2.2.2 非純虛函式 impure virtual 一 介面繼承 繼承類必須要實現宣告為pure virtua...