成員函式「指標」的大小

2022-07-21 19:03:16 字數 643 閱讀 2366

之所以將指標用引號表示,是因為成員函式「指標」不是指標!還是讓**來說話。

#include using

namespace

std;

//父類a

classa};

//父類b

classb};

//單繼承

class c : publica};

//多重繼承

class d : public a, publicb};

//虛繼承

class c1 : virtual

publica};

//虛繼承

class c2 : virtual

publicb};

//虛繼承

class d1 : public c1, public

c2};

intmain()

結果是不是挺吃驚的。具體原因呢——這有得說了。簡單地說,就是多重繼承、虛繼承下的this指標偏移引起的。

參考資料

1.

2.(這裡面可以得到詳細的解釋)

指向成員函式的指標

指向成員函式的指標 取乙個非靜態成員函式的位址,如果該函式是nonvirtual,則得到的結果是它在記憶體中真正的位址。然而這個值也不是完全的,它也需要被繫結於某個class object的位址上,才能夠通過它呼叫該函式。所有的非靜態成員函式都需要物件的位址 以引數this指出 乙個指向成員函式的指...

獲取成員函式的指標

今天的話題比較有意思,如何獲取乙個非 static 成員函式的指標?考慮以下 c class a void a foo void 也就是說,如何獲取 a foo 的指標?那位說了 這有何難?乙個 typedef 全搞定!c typedef void a fooptr void fooptr func...

類的成員函式指標

要想弄清楚類的函式成員指標,先得了解什麼是函式指標。例如 有乙個函式 int add int a,int b 你可以直接使用add 2,4 來呼叫該函式 當然,你也可以宣告乙個指向該函式的指標,再通過指標去呼叫函式 int padd int int add 函式名就代表位址,也可以用 add pad...