如何将类成员函数传递给非类成员函数的参数?我收到以下编译错误:
error: argument of type ‘void (MyNamespace::MyClass::)(int*)’ does not match ‘void (*)(int*)’
图书馆.h
typedef void (*testCallback)(int* iParam);
void UsingTheFoo(testCallback Callback);
图书馆.cpp
void UsingTheFoo(testCallback Callback)
{
int *p_int = new int;
*p_int = 5;
Callback(p_int);
}
我的类.cpp
namespace MyNamespace
{
void MyClass::fooCB(int* a)
{
printf("hey! %d\n", *a);
}
void MyClass::testo()
{
UsingTheFoo(fooCB);
}
} // MyNamespace
我无法更改“库”中的代码,我需要在 MyClass 成员函数中使用“UsingTheFoo”。我知道我的方法是错误的,我搜索并发现了类似的问题,但无法理解(班次结束时脑残:))其中任何一个都完全适应我的问题。
我已经读过: http: //www.parashift.com/c++-faq-lite/pointers-to-members.html:S