通過指標引用虛函式

2021-04-13 04:15:40 字數 1009 閱讀 9905

下面這個例子從多個角度來找到虛函式的指標,並對其進行呼叫

方法一:定義乙個物件找到物件中存放的虛函式所在表的頭指標,並將其第乙個指標作為我們呼叫的函式指標

方法二:直接通過二級指標找到函式指標

#include

#include //cout hex ……

#include //setw

using namespace std;

#define print_size(class_name) /

cout << "the size of " << #class_name << " is " << sizeof(class_name) << endl;

#define print_detail(class_name, object_name) /

cout << "the detail of " << #class_name << " is "; /

for (int i = 0; i < sizeof(object_name); ++i) /

cout << setw(0) << dec << endl;

#define print_size_detail(class_name) /

print_size(class_name) /

class_name _##class_name; /

print_detail(class_name, _##class_name)

class a

;int a::calc2(int a)

int main( )

int (*p)(int);

//p = (int (*)(int))0x00401150;

p = (int (*)(int))**ppul;

ret = (*p)(1);

printf("ret=%d/n",ret);

ret = ao->calc2(0xffff);

printf("ret=%d/n",ret);

return 0;

}

C 之函式體 通過指標引用

使用陣列作為函式的引數,在c 之函式體那裡已經講了通過普通的方法將陣列作為引數,引入到函式中。這裡介紹使用指標的方法將陣列作為引數 單個的數需要加 表示指標變數儲存的是變數位址 特別強調 指標一定慎用 ptr num 會改變指標所指向數的數值,使用指標最好配合const禁止數值被修改!include...

通過指標引用陣列

為了說清楚什麼是指標,必須先弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。編譯系統根據程式中定義的變數型別,分配一定長度的空間。例如,visual c 為整型變數分配4個位元組,對單精度浮點型變數分配4個位元組。記...

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

虛指標 虛繼承 在使用多重繼承時,如存在 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 時 存在以下記憶體儲存順序 虛指標 指向...