C 中vptr指標的存在

2021-07-24 05:31:03 字數 540 閱讀 2653

在實現多型的時候三個步驟:

(1)必須有繼承

(2)必須有virtual關鍵字

(3)有父類指標指向子類物件

其實在實現多型的時候,申明為虛函式是,編譯器會自動生成乙個虛函式表

當存在虛函式時,每個物件都有乙個指向虛函式表的指標

下面我來測試一下它的存在:

#include using namespace std;

class a

virtual void run()

private:

int a;

};class b

void run()

private:

int a;

};class c

virtual void run()

private:

int a;

};int main()

通過結果可以看出  列印的是8 4 8  剛好乙個指標的長度。

希望大家關注我,哪怕我還是乙個菜鳥^*^ 謝謝~

c 中的多型和vptr指標

1.多型原理 include include includeusing namespace std 01 多型原理 要有繼承 虛函式重寫 父類指標指向子類物件 class parent virtual void print 動手腳 寫virtual關鍵字,c 編譯器會做特殊處理 virtual vo...

C 多型中的VPTR

以下文字摘錄自 為了完成這件事,編譯器對每個包含虛函式的類建立乙個表 稱為vtable 在vtable中,編譯器旋轉特定類的虛函式位址。在每個帶有虛函式的類中,編譯器 秘密 地置一指標,稱為vpointer 縮寫為vptr 指向這個物件的vtable。通過基類指標 或者引用 做虛函式呼叫時,也就是做...

C 多型中的VPTR

以下文字摘錄自為了完成這件事,編譯器對每個包含虛函式的類建立乙個表 稱為vtable 在vtable中,編譯器旋轉特定類的虛函式位址。在每個帶有虛函式的類中,編譯器 秘密 地置一指標,稱為vpointer 縮寫為vptr 指向這個物件的vtable。通過基類指標 或者引用 做虛函式呼叫時,也就是做多...