#include <iostream>
#include <string>
using namespace std;
//1.友元
//a.类将数据和方法封装在一起 加以权限区分 用户只能通过公共方法 操作私有数据。(封装性)
//b.友元 主要用在运算符重载上。
//c.一个函数或者类 作为了另一个类的友元 那么这个函数或类 就可以直接访问 另一个类的私有数据。(突破类的封装性)
//1.1.普通全局函数 作为类的友元
//a.当全局函数想访问类的私有数据时,全局函数要作为类的友元。
class Room
{
friend void visiting(Room &room); //普通全局函数,作为类的友元
private:
string bedRoom;
public:
string setingRoom;
Room(string bedRoom, string setingRoom)
{
this->bedRoom = bedRoom;
this->setingRoom = setingRoom;
}
};
void visiting(Room &room) //普通全局函数
{
cout << "张三访问了 " << room.bedRoom << endl;
cout << "张三访问了 " << room.setingRoom << endl;
}
void test01()
{
Room ob("小明的卧室", "小明的客厅");
visiting(ob);
}
//1.2.类的某个成员函数 作为另一个类的友元
//a.当类中某个成员函数想访问另一个类的私有数据时,此成员函数要作为另一个类的友元。
class Room02; //向前声明
class Good
C++ 语法 - 6. 类的友元 - 详解(普通全局函数、类的某个成员函数、整个类,作为另一个类的友元)
于 2023-04-20 22:26:00 首次发布