之所以將指標用引號表示,是因為成員函式「指標」不是指標!還是讓**來說話。
#include usingnamespace
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...