Я пишу 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);
Ты не можешь Вы должны использовать static
функция. Но в вашей ситуации вы можете пройти RtspClientManager
объект в качестве параметра функции, а затем использовать другие методы / члены этого объекта. Также ваши объявления не верны, они должны быть такими:
typedef void (*responseHandler)(RTSPClient* rtspClient,
int resultCode, char* resultString);
unsigned RTSPClient::sendDescribeCommand(responseHandler responseHandler);