0

我正在编写 RTSP 客户端并在创建它之后

class RtspClientManager
{
private:
    rtsp_client;
    void continueAfterDescribe(RTSPClient* rtspClient, int resultCode, char* resultString);
}

...

rtsp_client = RTSPClient::createNew(*env, szUrl);

我正在发送描述命令:

rtsp_client->sendDescribeCommand(continueAfterDescribe);

我想拥有一个continueAfterDescribe实例RtspClientManager::continueAfterDescribe成员并可以访问所有成员。

当然continueAfterDescribe可以是静态成员函数,但我只能访问静态成员。如何将指针传递给非静态成员函数并访问 RtspClientManager 中的所有实例成员?

RTSPClient 方法 sendDescribeCommand 具有这样的签名:

unsigned RTSPClient::sendDescribeCommand(responseHandler* responseHandler);

typedef void (responseHandler)(RTSPClient* rtspClient,
             int resultCode, char* resultString);
4

1 回答 1

0

你不能。你必须使用static函数。但是在您的情况下,您可以将RtspClientManager对象作为参数传递给函数,然后使用该对象的其他方法/成员。您的声明也不正确,它们应该是这样的:

typedef void (*responseHandler)(RTSPClient* rtspClient,
         int resultCode, char* resultString);

unsigned RTSPClient::sendDescribeCommand(responseHandler responseHandler);
于 2014-05-07T09:09:09.493 回答