c C 虛函式和純虛函式

2021-08-18 17:32:52 字數 1238 閱讀 6593

純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類(繼承類)都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加=0

定義純虛函式的目的在於,使派生類僅僅只是繼承函式的介面。

virtual

《函式返回型別》 函式名 (參數列) = 0;

//基類base

class base

//虛函式

virtual

void f2(int x)

//純虛函式,將由子類實現

virtual

void f3(int x)=0;

};

在某基類中宣告為virtual並在乙個或多個派生類中被重新定義成員函式

virtual

《函式返回型別》 函式名 (參數列)

;

實現多型性,通過指向派生類的基類指標或引用,訪問派生類中同名覆蓋成員函式

class a

};

#include 

using

namespace

std;

//基類base

class base

//虛函式

virtual

void f2(int x)

//純虛函式,將由子類實現

virtual

void f3(int x)=0;

};

//繼承derived

class derived:public base

//覆蓋base的f2

void f2(int x)

//在子類中被過載,以多型的形式被呼叫,實現base的純虛函式

//a.編譯時多型性:通過過載函式實現

//b 執行時多型性:通過虛函式實現。

void f3(int x)

};

int main(int argc, char **argv)

虛函式和純虛函式

除了繼承外,c 的另乙個優良特性是支援多型,即允許將派生類的物件當作基類的物件使用。如果a是基類,b和c是a的派生類,多態函式test的引數是a的指標。那麼test函式可以引用a b c的物件。示例程式如下 class a void test a a class b public a class c...

虛函式 和 純虛函式

簡單的說,介面 就是該類的public函式。由於在類的外部一般只能通過這些公共函式才能訪問乙個類,所以這些函式就稱為類的介面。雖然乙個類也可以存在public成員資料,但是,一般不要編寫這種能夠直接在類的外部訪問的public資料,因為這樣就使資訊隱藏性受到一定的 破壞 當使用乙個基類的指標指向其乙...

純虛函式和虛函式

首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...