c++ - 当需要指向函数的指针时如何将指针传递给函数成员
问题描述
我在这个论坛上尝试过使用一些解决方案,但坦率地说,它们都令人困惑,我不明白如何将它们应用到我的代码中。所以我有:
class A { public: ...
A(args..., void (*myCallback)())
};
它适用于普通功能,但是当我尝试这个时
class B { public: void member(){}};
B temp;
A myobj(args..., temp.member);
它不起作用。据我所知,这是因为指向成员函数的指针隐藏了这个参数,所以 arg 列表不匹配。出于设计原因,我不能将 A 类设为静态。为我可能传入的每个类创建额外的构造函数是我的临时解决方案,但我对项目中的每个类都使用构造函数。有没有通用的解决方案?我已经读过 std::bind 或模板是要走的路,但我不熟悉它们。特别是绑定非常令人困惑,因为阅读它的资源很差,所以我在考虑类似的东西
template<typename> var;
class A { ...
A(args..., void (*myCallback)(var))
};
但是,这不是您使用模板的方式,因为编译器会在这方面给我错误。
解决方案
推荐阅读
- python - “老鼠现在在哪里?”
- c# - 异步函数中的动态变量
- php - 如何在没有多次上传的情况下存储数据“如果我没有要上传的文件”?
- php - 如何使用 jwt 身份验证为 wp rest 创建需要身份验证的 api 端点
- python-3.7 - 无法使用 pip 安装 pyaudio
- powerbi - 使用查找根据表中的值查找聚合值和相对值
- javascript - 如何结合 Lodash _.forEach() 和 _.groupBy
- java - 即时生成 Java 类并添加到类路径
- dart - 如何在多个视图中同时使用 PrimaryScrollController
- java - Java 8 列表列表