摘錄 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...