首先 函式指標是指向一組同型別的函式的指標;而類成員函式我們也可以相似的認為,它是指向同類中同一組型別的成員函式的指標,當然這裡的成員函式更準確的講應該是指非靜態的成員函式。前者是直接指向函式位址的,而後者我們從字面上也可以知道 它肯定是跟類和物件有著關係的。
typedef int (*p)(int,int);//定義乙個接受兩個int型且返回int型變數的函式指標型別
int func(int
x,int
y)int main()
而「指向類成員函式的指標」卻多了乙個類的區別:
class a
};typedef int (a::*p)(int,int);//指標名前一定要加上所屬型別類名 a::的限定
int main()
嘿嘿。。只是用起來 .* 感覺怪怪滴。
接下來 我們可以再繼續研究一下下:
#include
#include
#include
using
namespace
std;
class a
};class b:public a
};typedef
int (a::*p)(int,int);//指標名前一定要加上所屬型別類名 a::的限定
typedef
int (b::*p0)(int,int);
int main()
接下 是有關模板類的類成員函式指標的使用
例項如下:
#include
#include
#include
using
namespace
std;
class a
};template
class c
};int main()
其實它和普通的模板沒有什麼區別,只不過將限定名稱該為引數名。
明天再仔細研究這個問題,太晚了,睡覺了
類成員指標
類成員指標一般很少用到,使用類成員的指標與普通指標的區別在於,需要在類成員指標前面的加上類限定符,以指明是哪個類的成員指標。同樣,在初始化指標時,也只能用相應類的相應型別的成員對指標進行初始化。成員指標的應用舉例 當乙個類有多個性質相同且型別相同的函式成員時,可以使用函式表來進行函式呼叫,產生用同一...
類成員指標
看到深度探索c 物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下 templatechar access order data type1 class type mem1,data type2 class type mem2 用以下程式測試 class po...
類成員指標
看到深度探索c 物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下 templatechar access order data type1 class type mem1,data type2 class type mem2 用以下程式測試 class po...