繁体   English   中英

如何使用好友类对象访问私有成员函数?

[英]How to access private member function using friend class object?

main ,我想访问display功能。 在这里,在class B我宣布class A为朋友。 因此,我认为可以访问私有成员函数。 但是我不知道该怎么做。

#include<stdio.h>

class A
{ 
  public:
  class B
  {
    public:
     friend class A;
    private:
     void display()
     {
       printf("\nHi");
     }
  };
};

int main()
{
  //here i wanna access display function.. is it possible?
  return 1;
}

friend指定对私人成员具有访问权限的对象。 在您的情况下,您想访问main函数中的私有成员,因此您应该指定它是朋友:

class A
{ 
    public:
    class B
    {
       friend int main();
       void display()
       {
           printf("\nHi");
       }
    };
};

int main()
{
    // here you can access display function:
    A::B object;
    object.display();
}

或者,如果您想让class A (而不是其他任何东西)成为朋友,则class A应该访问display功能。 class A任何成员都可以做到:

class A
{ 
    public:
    class B
    {
       friend class A;
       void display()
       {
           printf("\nHi");
       }
    };

    // here you can access display function:
    void access_display(B object)
    {
        object.display();
    }
};

int main()
{
    A object1;
    A::B object2;
    object1.access_display(object2);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM