Вызов указателя на функцию-член извне класса - это возможно? - PullRequest
0 голосов
/ 27 февраля 2020

предположим, у меня есть класс с объявленным указателем на функцию-член:

bool (myclass::*secspec_goutmsg)(char* msg , int n) ;

Я могу где-нибудь объявить метод, который просто вызывает этот указатель на функцию и возвращает результат

bool custom_gui(char* msg , int n)
{
    if (secspec_goutmsg !=NULL)
        return (*this.*secspec_goutmsg)(msg , n) ;
    else
        return false ;
}

однако можно ли вызвать этот указатель на функцию прямо из класса, исключив этот метод, который по сути является оберткой? такие вещи, как

(*myclassinstance.*(myclass::secspec_goutmsg))(msg , n) ;

даже не компилируются.

1 Ответ

1 голос
/ 27 февраля 2020

Да, но вы ищете:

(myclassinstance.*myclassinstance.secspec_goutmsg)(msg, n);

или из комментариев, если myclassinstance является указателем

(myclassinstance->*myclassinstance->secspec_goutmsg)(msg, n);
...