c++ - 调用指向其他类中的成员函数的指针时编译错误
问题描述
我在“Ah”中创建了一个 A 类,它有一个公共函数 func(int)
class A {
public:
A();
int func(int val);
...
}
并且“Bh”中的类 B 具有类 A 作为成员和指向上述函数的指针的 typedef。
class B {
typedef int (A::*m_func)(int);
public:
B();
private:
A myA;
m_func _ptrFunc;
...
}
在 B.cpp 中将 A 类中的一个函数分配给 B 的成员函数
_ptrFunc = &myA.func
但是当我尝试像这样将参数传递给 _ptrFunc
if(_ptrFunc) {
y = (this->*_ptrFunc)(x)
...
}
我得到以下错误
错误:指向成员类型“int (A::)(int)”的指针与对象类型“A”不兼容 y = (this->*_ptrFunc)(x);
访问指向其他类的函数指针的正确方法是什么?
解决方案
推荐阅读
- google-chrome - Chrome 91/92 使用行跨度和列跨度打破表格布局
- c++ - 将两个 C/C++ 项目相互连接
- python - Do apache_beam pipelines need to be declared using a with statement?
- python - 在 ucf101 官方拆分上运行 c3d 模型时出错
- java - 阀门的部分尺寸问题
- gantt-chart - 如何根据 AnyGantt 中的自定义字段调整里程碑标记类型?
- python - 为什么警告不显示弃用消息
- c# - 我应该使用哪个版本的编译器来拥有 C# 9 编译器?
- python - pyinstaller exe 的工作方式与 Python 代码不同
- android - 为android模拟器构建自定义内核