我试图将成员函数分配给指向 C++ 成员函数的指针,但出现错误。我有这样的代码:
#ifndef MY_CLASS_H
#define MY_CLASS_H
class MyClass {
MyClass* (MyClass::*memPtr_) (ParamType);
public:
void myFunction();
void myFunction2();
void myFunction3();
MyClass& foo(ParamType var);
MyClass& bar(ParamType var);
MyClass& fooBar(ParamType var);
...
};
#endif
和...
void MyClass::myFunction() {
memPtr_ = &MyClass::foo;
...
void MyClass::myFunction2() {
memPtr_ = &MyClass::bar;
...
void MyClass::myFunction3() {
memPtr_ = &MyClass::fooBar;
...
在线路上
memPtr_ = &MyClass::foo;
和
memPtr_ = &MyClass::bar;
和
memPtr_ = &MyClass::fooBar;
当我编译时 - 我得到错误:
"cannot convert 'MyClass& (MyClass::*)(ParamType)'
to MyClass* (MyClass::*)(ParamType)' in assignment."
我已经搜索过 - 但我似乎找不到解决这个问题的方法 - 将成员函数分配给指向成员函数“memPtr_”的指针的正确语法是什么?
最佳答案
Jrok 是正确的,我解决了这个问题。我只是改变了:
MyClass* (MyClass::*memPtr_) (ParamType);
为了...
MyClass& (MyClass::*memPtr_) (ParamType);
关于c++ - 如何在 C++ 中将成员函数分配给指向成员函数的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18704932/