use*_*528 1 c++ function-pointers
这次我的问题是将函数分配给函数指针.我有一个这样的课:
class MyClass
{
private:
bool dofunction() {return true;}
protected:
bool (*ptf) ();
public:
MyClass();
};
MyClass::MyClass
{
ptf = dofunction; //// error
}
Run Code Online (Sandbox Code Playgroud)
但如果我在类之外使用一个函数,它会编译:
bool function()
{
return true;
}
MyClass::MyClass()
{
ptf = function; //// OK
}
Run Code Online (Sandbox Code Playgroud)
任何帮助?
啊哈!谢谢
我用了static关键字.
对于类成员函数,您需要使用指向成员函数的指针:
bool (MyClass::*ptf) () ;
Run Code Online (Sandbox Code Playgroud)
它应该被指定为,
ptf = &(MyClass::dofunction);
Run Code Online (Sandbox Code Playgroud)
另请注意,现在您无法分配ptf给非类功能.它完全是一种不同的类型(即使语法看起来相同).