[英]C++ static pointer to function
我想在我的类中有一个私有静态指针指向一个函数。 基本上,它看起来像这样:
//file.h
class X {
private:
static int (*staticFunc)(const X&);
...
public:
void f();
};
//file.cpp
void X::f()
{
staticFunc(*this);
}
这给了我一个“未解决的外部符号”错误。 我知道静态成员也必须在.cpp中初始化,我试过这个:
int (X::*staticFunc)(const X&) = NULL;
但这给了我一个“初始化函数”的错误。 如果我尝试使用现有函数初始化它,它会给我一个更大的错误。 如果没有“= NULL”,我会得到同样的错误。
谢谢。
//file.cpp
int (*X::staticFunc)(const X&);
void X::f()
{
staticFunc(*this);
}
它是X的成员,所以你需要说
int (*X::staticFunc)(const X&) = NULL;
否则,您只需创建一个名为staticFunc
的全局变量,该变量与X的静态成员无关。
这里有几个问题。
第一个错误是您在尝试使用staticFunc时没有传递参数。 这应该导致您没有报告的编译器错误。
第二个问题是您的语法错误。 TonyK得到那个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.