這已經打敗了我。我想要一個靜態類變量,它是一個指向(非靜態)成員函數的指針。我嘗試了各種方式,但沒有運氣(包括使用typedef
,這似乎給了我一個不同的錯誤)。在下面的代碼中,我有靜態類函數指針funcptr
,我可以從類外成功調用它,但不是從成員函數CallFuncptr
內部 - 這正是我想要做的。有什麼建議麼?靜態成員函數指針保存非靜態成員函數
#include <stdio.h>
class A
{
public:
static int (A::*funcptr)();
int Four() { return 4;};
int CallFuncptr() { return (this->*funcptr)(); }
// doesn't link - undefined reference to `A::funcptr'
};
int (A::*funcptr)() = &A::Four;
int main()
{
A fred;
printf("four? %d\n", (fred.*funcptr)()); // This works
printf("four? %d\n", fred.CallFuncptr()); // But this is the way I want to call it
}
工程款待 - 非常感謝! – bandjalong