从类外部调用成员函数指针-可以吗?

问题描述 投票:0回答:1

假设我有一个带有声明的成员函数指针的类:

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) ;

甚至不编译。

c++ member-function-pointers
1个回答
1
投票

是,但您正在寻找:

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

或从注释中,如果myclassinstance是一个指针

(myclassinstance->*myclassinstance->secspec_goutmsg)(msg, n);
© www.soinside.com 2019 - 2024. All rights reserved.