#include <iostream>
using namespace std;
class B
{
public:
int getMsg(int i)
{
return i + 1;
}
};
class A
{
B b;
public:
void run()
{
taunt(b.getMsg);
}
void taunt(int (*msg)(int))
{
cout << (*msg)(1) << endl;
}
};
int main()
{
A a;
a.run();
}
上面的代码在 A 类中有一个 B 类,A 类有一个方法 taunt,它接受一个函数作为参数。B 类的 getMsg 被传递到 taunt...上面的代码生成了以下错误消息:“错误:没有匹配函数调用 'A::taunt()'”
是什么导致上述代码中的错误消息?我错过了什么吗?
更新:
#include <iostream>
using namespace std;
class B
{
public:
int getMsg(int i)
{
return i + 1;
}
};
class A
{
B b;
public:
void run()
{
taunt(b.getMsg);
}
void taunt(int (B::*msg)(int))
{
cout << (*msg)(1) << endl;
}
};
int main()
{
A a;
a.run();
}
t.cpp:在成员函数“void A::run()”中:第 19 行:错误:没有匹配函数调用“A::taunt()”编译由于 -Wfatal 错误而终止。
将 (*msg)(int) 更改为 (B::*msg)(int) 后,我仍然遇到相同的错误