这次我的问题是将函数分配给函数指针。我有一个这样的课:
class MyClass
{
private:
bool dofunction() {return true;}
protected:
bool (*ptf) ();
public:
MyClass();
};
MyClass::MyClass
{
ptf = dofunction; //// error
}
但如果我在课外使用一个函数,它会编译:
bool function()
{
return true;
}
MyClass::MyClass()
{
ptf = function; //// OK
}
任何帮助?
AHA !! 谢谢
我使用了static
个关键字。
答案 0 :(得分:5)
对于班级成员函数,您需要使用pointer to member functions:
bool (MyClass::*ptf) () ;
应该指定为,
ptf = &(MyClass::dofunction);
另请注意,现在您无法将ptf
分配给非类功能。它完全是一种不同的类型(即使语法看起来相同)。
答案 1 :(得分:0)
第一个是bool (MyClass::*ptf) ()
类型..你需要指定它所在的类。
答案 2 :(得分:0)
我认为应该是:
bool (MyClass::*ptf)();