C 繼承與純虛函式(呼叫子類介面)

2021-10-03 03:12:13 字數 593 閱讀 5338

首先明確c++中的多型機制

純虛函式是為了能在父類中提供乙個各個子類通用的介面。在父類中建立乙個純虛函式:

class base

;

然後在子類中重寫以上函式

class son :public base

; // 子類必須重寫純虛函式

};

值得注意的是,要想呼叫公共介面,必須用父類指標指向子類物件

void test01()

base *base = new son; 父類指標指向子類物件,呼叫多型機制

但是,此時指標base->並不能指出來子類特有的成員函式,如果想呼叫子類特殊的介面

需要強轉為子類指標呼叫

加入son有個成員函式 makes()

base->makes() 是呼叫不到的

需要先對指標進行強**

son * son = (son* ) base;
然後呼叫子類成員函式

son->makes();

c 介面, 虛函式,純虛函式

虛函式為了過載和多型 父類和子類之間的關係 class base純虛函式 子類與子類之間的關係 因為在父類中純虛函式 介面 沒有實現,這樣做的原因就是派生出多個子類時候,都通過介面來完成各自的操作,換句話說 如果從抽象類派生若干子類,則這些子類必須都要使用抽象類中定義的那些純虛函式,因為純虛函式必須...

子類繼承父類的虛函式呼叫

父類 father 子類 son 1.father fa new son 例項1 includeusing namespace std class father void watchtv virtual void say class son public father void watchtv vo...

C 虛函式與純虛函式

純虛函式定義如下 virtual functionname parameter 0 類的乙個成員定位虛函式的實際意義在於讓c 知道該函式並無意義,它的作用只是為了讓派生類進行函式過載保留位置。純虛函式的定義方法就是在類的虛函式後面加上 0 標記,類中一旦出現了純虛函式的定義,那麼此類為抽象類。例項 ...