我有Base和Dervided类。在Base类中,我有一个特定函数指针的typedef(我认为这是函数指针,我不确定):
typedef void (responseHandler)(BaseClass* instance,int resultCode, char* resultString);
在同一个基类中,我有几个函数接受这个typedef:
unsigned sendDescribeCommand(responseHandler* responseHandler, Authenticator* authenticator = NULL);
在我从这个Base类的自定义派生类中,我有我的响应处理函数,如下所示:
void continueAfterDESCRIBE(RTSPClient* rtspClient, int resultCode, char* resultString);
如何将此方法用作sendDescribeCommand
的输入?
我试过这个:
DerivedClass->sendDescribeCommand(DerivedCLass->continueAfterDescribe, MyAuth)
,但这并没有构建错误:
“错误C3867:'DerivedClass :: continueAfterDESCRIBE':非标准语法;使用'&'创建指向成员“
我还尝试使用std::bind
:
auto responseCallback = std::bind(&DerivedClass::continueAfterDESCRIBE, DerivedClassInstance);
DerivedClass->sendDescribeCommand(responseCallback, ourAuthenticator);
它也给我一个错误:没有从std :: bind到我的响应处理程序的适当转换。
我知道有一种方法可以使我的方法保持静态,但我很好奇是否还有另一种方式?