C 的虛函式簡單介紹

2021-07-03 17:01:28 字數 2341 閱讀 3822

//c++中的虛函式的作用主要是實現了多型的機制。關於多型,

//簡而言之就是用父型別別的指標指向其子類的例項,

//然後通過父類的指標呼叫實際子類的成員函式

//每個類都維護著一張虛函式表,

//呼叫虛函式時檢視物件是那個類,然後查表

//基類可以使用為純虛函式(virtual void print()=0),

//基類就是抽象類,要求子類實現

//過載(overload)

//1.相同作用域(同類)

//2.函式名相同

//3.引數不同(引數型別,個數,順序)

關鍵字可有可無

//

//覆蓋(重寫override)

//1.位於不同作用域(父子類)

//2.函式名稱相同

//3.引數也相同

必須有

//

//隱藏

//1.位於不同作用域(父子類)

//2.函式名稱相同

//3.引數個數不同

關鍵字可有可無

//-------------------------

//1.位於不同作用域

//2.名稱相同

//3.引數相同

//4.父類指標指向子類變數,隱藏子類方法

//5.方法是虛函式

#include "stdafx.h"

#include

usingnamespacestd;

classparclass

virtualvoidprint()

voidprint(inti)//過載overload

virtual~parclass()

};

classchilclass:publicparclass

virtualvoidprint()//覆蓋(重寫) override

~chilclass()//為virtual

};

classchilclass_1:publicparclass

~chilclass_1()

};

int_tmain(intargc, _tchar* argv)

虛函式 簡單介紹

當類中有虛函式的時候,編譯器會為類插入乙個我們看不見的資料並建立乙個表。這個表就是虛函式表 vtbl 那個我們看不見的資料就是指向虛函式表的指標 虛表指標 vptr 虛函式表就是為了儲存類中的虛函式的位址。我們可以把虛函式表理解成乙個陣列,陣列中的每個元素存放的就是類中虛函式的位址。當呼叫虛函式的時...

C 虛函式簡單總結

2016 07 07 14 39 187人閱讀收藏 舉報 c 59 在類的繼承層次結構中,在不同層次中可以出現名字相同 引數個數和型別都相同的函式。簡單地說,被virtual關鍵字修飾的成員函式,就是虛函式。格式 virtual 函式返回值型別 函式名 引數列表 舉例 cpp view plain ...

C 中virtual 虛函式的作用介紹

虛函式是定義在基類中的函式,子類必須對其進覆蓋。在類中宣告虛函式的格式 virtual void display 1 定義子類物件,並呼叫物件中未被子類覆蓋的基類函式a。同時在該函式a中,又呼叫了子類覆蓋的基類函式b。此刻將會呼叫基類中的函式b,而我們原本是想呼叫是子類中的覆蓋函式b。而使用虛函式就...