作為乙個 class 的設計者
1、有的時候你想要 derived classes 只繼承乙個 member function 的 inte***ce (declaration):
宣告乙個 pure virtual function的目的是使 derived classes 繼承乙個函式 inte***ce only。
2、有的時候你想要 derived classes 既繼承 inte***ce也繼承 implementation,但你要允許它們替換他們繼承到的 implementation:
宣告乙個 ****** virtual function 的目的是讓 derived classes 繼承乙個函式 inte***ce as well as a default implementation。「你應該支援乙個 error function,但如果你不想自己寫,你可以求助 shape class 中的預設版本。」
問題**:若出現modelc型機不能用預設fly,卻忽略實現fly
修改方案:
3、還有的時候你想要 derived classes 繼承乙個函式的 inte***ce和 implementation,而不允許它們替換任何東西。
34區分介面繼承和實現繼承
宣告 pure virtual 函式的目的是為了讓derived class 只繼承函式介面,具體實現須在derived class 中完成 宣告impure virtual 函式的目的是為了讓 derived class 繼承該函式的介面和預設實現,通過呼叫可在此預設實現基礎上新增新的 宣告non...
34區分介面繼承和實現繼承
函式介面繼承與函式實現繼承,在public繼承之下,derived classes總是繼承base class的介面。作為class的設計者 1.有時我們希望derived classes只繼承成員函式的介面 宣告 2.有時我們會希望derived classes同時繼承函式的介面與實現,但是又希望...
C Item34 區分介面繼承和實現繼承
區分介面繼承和實現繼承 類包含的成員函式種類 1.靜態函式 2.非靜態函式 2.1 普通函式 非虛 non virtual 2.2 虛函式 2.2.1 純虛函式 pure virtual 2.2.2 非純虛函式 impure virtual 一 介面繼承 繼承類必須要實現宣告為pure virtua...