这打败了我。我想要一个静态类变量,它是一个指向(非静态)成员函数的指针。我尝试了各种方法,但没有运气(包括使用typedef
s,这似乎给了我一组不同的错误)。在下面的代码中,我有静态类函数指针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
}