从 class 外部调用成员函数指针 - 这可能吗?
calling a member function pointer from outside the class - is it possible?
假设我有一个 class,其中声明了一个成员函数指针:
bool (myclass::*secspec_goutmsg)(char* msg , int n) ;
我可以在某处声明一个方法,该方法只需调用此函数指针和 returns 结果
bool custom_gui(char* msg , int n)
{
if (secspec_goutmsg !=NULL)
return (*this.*secspec_goutmsg)(msg , n) ;
else
return false ;
}
然而,是否可以直接从 class 外部调用此函数指针,从而消除本质上是包装器的此方法?
之类的东西
(*myclassinstance.*(myclass::secspec_goutmsg))(msg , n) ;
甚至不编译。
是的,但您正在寻找:
(myclassinstance.*myclassinstance.secspec_goutmsg)(msg, n);
或者从评论中,如果myclassinstance是一个指针
(myclassinstance->*myclassinstance->secspec_goutmsg)(msg, n);
假设我有一个 class,其中声明了一个成员函数指针:
bool (myclass::*secspec_goutmsg)(char* msg , int n) ;
我可以在某处声明一个方法,该方法只需调用此函数指针和 returns 结果
bool custom_gui(char* msg , int n)
{
if (secspec_goutmsg !=NULL)
return (*this.*secspec_goutmsg)(msg , n) ;
else
return false ;
}
然而,是否可以直接从 class 外部调用此函数指针,从而消除本质上是包装器的此方法?
之类的东西(*myclassinstance.*(myclass::secspec_goutmsg))(msg , n) ;
甚至不编译。
是的,但您正在寻找:
(myclassinstance.*myclassinstance.secspec_goutmsg)(msg, n);
或者从评论中,如果myclassinstance是一个指针
(myclassinstance->*myclassinstance->secspec_goutmsg)(msg, n);