虛函式與純虛函式

2021-07-02 16:32:51 字數 1420 閱讀 6841

參考:

虛函式

比如:virtual void function1();

virtual關鍵字修飾的

成員函式

,就是虛函式。

把基類的成員函式

設為virtual,其

派生類的相應的函式也會自動變為虛函式。 指向

基類的指標在操作它的

多型類物件時,會根據不同的類物件,呼叫其相應的函式,這個函式就是虛函式。

純虛函式

比如:virtual void function1()=0;

含有純虛函式的類稱為

抽象類,它不能生成物件。

如:

//乙個帶有純虛函式的抽象類

class workunit : public runtimeinfo, public reflectobject

; /*job狀態,乙個列舉型別*/

public:

workunit();

virtual ~workunit();

virtual bool onbeginwork() //帶實現的虛函式

virtual void onendwork(){} //空實現的虛函式

virtual int dowork()=0; //純虛函式,使類workunit變為虛類,不能直接生成物件

bool isinterupted(); //普通函式

protected:

std::string m_strname; //該工作單元名

int m_ipriority; //工作單元的優先順序

state m_cstate; //列舉型別變數

}

如果要派生抽象類,而又不定義純虛函式,子類還要保留:

virtual void function1()=0;

//派生自抽象類workunit的抽象類ruler

class ruler: public workunit

//派生自抽象類ruler的抽象類checkrule

class checkrule: public common::ruler

;

純虛函式如果不實現就得加乙個virtual void function1()=0;子類要實現酒吧virtual去掉。

如果純虛函式在子類實現了,那麼子類可以生成物件:

//派生自抽象類checkrule的非抽象類,該類用來檢查「銀行atm的pio點」。

class poibankatm : public checkrule

; };

虛函式與純虛函式

1 基本形式 virtual returntype function 1 虛函式宣告 virtual returntype function 2 0 純虛函式宣告 先講示例吧,再總結結論。2 示例 classanimail 這段 的輸出結果是什麼呢?起初我認為是 animail function 1...

虛函式與純虛函式

1 基本形式 virtual returntype function 1 虛函式宣告 virtual returntype function 2 0 純虛函式宣告 先講示例吧,再總結結論。2 示例 classanimail 這段 的輸出結果是什麼呢?起初我認為是 animail function 1...

虛函式與純虛函式

在c 中虛函式是實現多型的一種機制,核心理念就是通過基類訪問派生類定義的函式。最常見的例子就是如下 class a class b public a int main void 這裡函式foo通過關鍵字virtual宣告為了虛函式,主函式中定義了乙個父類a的指標a,指向乙個子類b,此時再用a去呼叫f...