Как использовать нестатическую функцию-член в качестве указателя на функцию?

Я пишу 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);

0

Решение

Ты не можешь Вы должны использовать static функция. Но в вашей ситуации вы можете пройти RtspClientManager объект в качестве параметра функции, а затем использовать другие методы / члены этого объекта. Также ваши объявления не верны, они должны быть такими:

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

unsigned RTSPClient::sendDescribeCommand(responseHandler responseHandler);
0

Другие решения


По вопросам рекламы [email protected]