如何在C++中将成员函数分配给指向成员函数的指针
How to assign a member function to a pointer to member function in C++
我正在尝试将成员函数分配给指向 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++构造函数成员初始化:传递参数
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何在C++通过公共函数访问私有函数成员?
- 解释了构造函数成员初始化列表
- 调用std::函数成员时内存损坏
- 是否可以为模板类的模板函数成员设置别名?
- 捕获 lambda 函数C++成员变量
- 构造函数成员初始值设定项跨成员列出,安全吗?
- 获取与在模板参数中传递的函数成员类型相同的类
- 如何从公共函数成员访问地图私有成员
- C 构造函数成员分配优化
- 使用命名空间进行函数成员定义
- 函数成员作为 CUDA 内核的参数
- 模板基类函数成员的别名
- 函数成员中用于void和继承的enable_if
- 头文件中是否定义了一个很长的Class函数成员
- 类内/构造函数成员初始化
- 使用指向部分专用函数成员的指针自动填充向量
- 指向函数成员的指针