当前位置: 代码迷 >> 综合 >> c++类的 实例 和有元 的访问权限
  详细解决方案

c++类的 实例 和有元 的访问权限

热度:37   发布时间:2023-10-14 03:20:25.0
#include <iostream>
using namespace std;
class aa
{friend class friendClass;//有元类
 friend void  friendFunc();//有元函数
public:
  int public_num;
  void public_func()//类的函数 调用 类的成员变量
  {cout<<"public_func:   "<<public_num<<endl;
   cout<<"==================public"<<endl; }
protected:
  int protected_num;
  void protected_func()
  {cout<<"protected_func:"<<protected_num<<endl;
  cout<<"==================protected"<<endl;}
private:
  int private_num;
  void private_func()
  {cout<<"private_func:  "<<private_num<<endl;
   cout<<"==================private"<<endl;}
};
class friendClass
{public:
    friendClass()
    {   cout<<endl;
        cout<<"friendClass"<<endl;
     aa  aAa;
     aAa.public_num=1;
     aAa.protected_num=2;
     aAa.private_num=3;
     aAa.public_func();
     aAa.protected_func();
     aAa.private_func();
    }
    ~friendClass(){}
};
void friendFunc()
{
  
     cout<<endl;
     cout<<"friendFunc"<<endl;
    aa bBb;
    bBb.public_num=11;
    bBb.protected_num=22;
    bBb.private_num=33;
    bBb.public_func();
    bBb.protected_func();
    bBb.private_func();
}
int main()
{
  
    aa aEa;//类的实例
        //类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问
             aEa.public_num=111;
             aEa.public_func();
        //类的实例变量 无法访问 protected成员变量、成员函数
             //aEa.protected_num=222; 错误
             //aEa.protected_func();  错误
        //类的实例变量 无法访问 private成员变量、成员函数
             //aEa.private_num=333;    错误
             //aEa.private_func();     错误
        friendFunc();/* 友元函数可以访问public,protected,private成员变量和函数 */
        friendClass friendObject;/* 友元类可以访问public,protected,private成员变量和函数 */
    cout << "Hello World!" << endl;
    return 0;
}

  相关解决方案