C++——友元函数和友元类

友元函数:让函数可以访问类的私有属性

 C++——友元函数和友元类

C++——友元函数和友元类

#include <iostream>
using namespace std;

class A
{
public:
    friend class B;//B类 是 A的好朋友 ,在B中可以访问A类的私有成员 私有函数
    //1 声明的位置 和 public private没有关系
    friend void modifyA(A *pA, int _a); //2 函数modifyA 是 类A的好朋友
    A(int a=0, int b=0)
    {
        this->a = a;
        this->b = b;
    }
    int getA()
    {
        return this->a;
    }

private:
    int a;
    int b;
};

//  

void modifyA(A *pA, int _a)
{
    //pA->a = 100;
    pA->a = _a;
}


void main2101()
{
    
    A a1(1, 2);
    cout<< a1.getA()<<endl;
    modifyA(&a1, 300);
    cout<< a1.getA()<<endl;

    
    cout<<"hello..."<<endl;
    system("pause");
    return ;
}

友元类

  • 若B类是A类的友员类,则B类的所有成员函数都是A类的友员函数
  • 友员类通常设计为一种对数据操作或类之间传递消息的辅助类
  • C++——友元函数和友元类