可能重复:
如何将类成员函数作为回调传递?
我有两个班级 A 和 B
class A
{
public:
void SetHandler(void (*p)(OMX_BUFFERHEADERTYPE*)){ Handler = p; };
private:
void (*Handler)(OMX_BUFFERHEADERTYPE*);
}
和
在BI中有一个功能
void B::handler(OMX_BUFFERHEADERTYPE* p){};
现在当(来自B)我打电话给
inst_a.SetHandler(&B::handler);
我收到以下错误:
B.cpp:740:69: error: no matching function for call to ‘A::SetHandler(void (COMXVideo::*)(OMX_BUFFERHEADERTYPE*))’
B.cpp:740:69: note: candidate is:
A.h:161:8: note: void A::SetHandler(void (*)(OMX_BUFFERHEADERTYPE*))
A.h:161:8: note: no known conversion for argument 1 from ‘void (B::*)(OMX_BUFFERHEADERTYPE*)’ to ‘void (*)(OMX_BUFFERHEADERTYPE*)’
我究竟做错了什么?
最好的祝福