虛函式 摘錄

2021-06-03 01:05:39 字數 744 閱讀 9217

摘錄 c++程式設計思想。

先看下面程式:下執行的

#include"iostream"

using namespace std;

enum note;

class instrument;

class instrument

virtual int fun() const

};class derived:public base

int fun()const

};class derived1:public derived

int fun() const

};int main()

結果是:31.

如刪除   int fun() const結果是 21

如再刪除int fun()const結果是11

如再刪除virtual int fun() const 報錯了

這說明了:乙個物件不可能出現繫結不到虛函式的情況,若物件的類沒有,則自動向上對映,知道找到虛函式,沒找到就報錯。

編譯器為新類建立乙個新錶vtable,把函式位址放裡面,對於沒有重建的虛函式的位址使用其上層的虛函式的位址;

達到使用基類的指標控制派生類的物件的目的。

注意事項:對於建構函式裡的虛函式,它呼叫的是本地的虛函式。與其他函式不一樣哦

建構函式不能是虛函式,而析構可以,特別注意的是,析構函式裡的虛函式也是本本虛函式哦

虛函式當然也可以當成普通函式那樣靜態呼叫 只是加域操作符::就可以了

虛指標,虛函式,虛函式表,純虛函式

虛指標 虛繼承 在使用多重繼承時,如存在 class a 有m a變數 class a1 virtual public a,m a1 class a2 virtual public a m a2 class b public a1,public a2 m b 時 存在以下記憶體儲存順序 虛指標 指向...

虛函式 純虛函式

一 定義.純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加 0 virtual void funtion1 0 二 引入原因 1 為了方便使用多型特性,我們常常需要在基類中定義虛函式。2 在很多情況下,基類本身生成...

虛函式 純虛函式

虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標引用來訪問基類和派生類中的同名函式。include using namespace std class student student類成員函式的實現 宣告抽象基類shape class shape virtual float...