我如何使用std :: bind将类成员函数绑定为函数指针?

时间:2016-11-29 15:08:33

标签: c++11

我有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到我的响应处理程序的适当转换。

我知道有一种方法可以使我的方法保持静态,但我很好奇是否还有另一种方式?

0 个答案:

没有答案