我一直在努力使指向做這樣的事情(視覺C++)的方法的指針函數指針的靜態方法這樣的:指向沒有靜態方法
struct Dx
{
int SomeMethod()
{
return 4;
}
};
struct Dy
{
static int(*pSomeMethod)();
};
int(Dy::*pSomeMethod)() = (int(Dy::*)())&Dx::SomeMethod;
到目前爲止好,這個編譯沒有問題,但如果我嘗試打電話給她:
Dy::pSomeMethod();
釷Ë編譯器返回我:
Error 1 error LNK2001: external symbol "public: static int (__stdcall * Dy::pSomeMethod) (void)" (? [email protected]@@2P6GHXZA) unresolved
我不明白,因爲它不是想pSomeMethod
他是不是在SomeMethod
指點?
你不明白一個函數指針和一個類的方法指針之間的根本區別。他們是兩個完全不同的東西,你不能在兩者之間進行轉換。您也不能將一個類的類方法指針轉換爲另一個類的類方法指針。 –