如何通过好友函数调用私有函数? [英] How to call a private function via friend function?

查看:57
本文介绍了如何通过好友函数调用私有函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我尝试访问私有成员函数是Gtest. 该代码看起来与此类似.那么,如何访问static void Pri_fun?

Hello I am trying to access a private member function is Gtest. The code looks somewhat similar to this. So, how can I access static void Pri_fun?

using namespace std;
class test{

};
class abc{
public:
    friend class test;
private:
    static void Pri_fun()
        {
        cout << "private fun called \n";
        }
};
int main()
{
    abc ab;
    test *abd;
    abd->Pri_fun();
}

推荐答案

由于它是静态函数,因此您应该通过类名称进行访问:

Since it's a static function, you should access it via the class name:

abc::Pri_fun();

不过,您应该创建一个调用程序函数,或从好友类的构造函数中调用它:

You should make a caller function though, or call it from the friend class' constructor:

class test{
public:
    void foo() 
    {
        abc::Pri_fun();
    }
};

class test{
public:
    test() 
    {
        abc::Pri_fun();
    }
};

这篇关于如何通过好友函数调用私有函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆