c++ - 将函数指针指向成员方法
问题描述
我有 2 类 ClassA 和 ClassB 如下所示。如何在将指针传递给 ClassA 的方法的 classB 的构造函数中初始化 classA 对象?
非常感谢!!
typedef int (*doWork)(int, int);
int GlobalAdd(int a, int b) {
return a + b;
}
class ClassA {
public:
ClassA(doWork){}
};
class ClassB
{
bool mIsBlocked = false;
public:
ClassB() {
ClassA A1(GlobalAdd); // OK
ClassA A2(&ClassB::MemberAdd); // error C2664: 'ClassA::ClassA(ClassA &&)': cannot convert argument 1 from 'int (__thiscall ClassB::* )(int,int)' to 'doWork'
}
int MemberAdd(int a, int b)
{
if(mIsBlocked)
return a + b;
return -1;
}
};
解决方案
推荐阅读
- angular - 执行 npm 命令时路径错误
- javascript - 提交按钮和输入验证?
- python-3.x - 从嵌套列表中提取数据
- javascript - Javascript 在 PWA 上设置白色状态栏,就像新的 Chrome 一样
- javascript - 如何使用 jQuery 在元素中导入 onClick
- reactjs - 如何结合 React 渲染 D3 Force-Bubble?
- firefox - 'sdparta' 在 Firefox webRTC 会话描述中代表什么?
- java - 迭代 ResultSet 时的奇怪行为
- android - Android Studio 3.2 后如何解决 NonNull 注解?
- android - ANDROID STUDIO 持久 wifi 扫描仪