简介:C++友元的作用是让外部的对象(全局函数、类、类成员函数)能够访问到某个类里面的private修饰的数据,因此,必然是使用方法或者函数来操作数据。
1、全局函数做友元
使用全局函数做友元,函数接收一个对象,可以使用对象的指针或者引用。然后在函数体当中就可以操作private修饰的数据了。前提就是在对象所在的类中使用friend注册该全局函数为友元。
#include<iostream>
#include<string>
using namespace std;
class Building {
friend void global_friend(Building *b); //声明友元
public:
Building() {
sitting_room = "客厅";
beddingroom = "卧室";
}
public:
string sitting_room;
private:
string beddingroom;
};
void global_friend(Building *b){
cout<<"访问"<<b->sitting_room<<endl;
cout<<"访问"<<b->beddingroom;
}
int main(){
Building b = Building();
global_friend(&b);
}
2、类做友元
将某个类注册为某个类中的友元类,那么外部类的所有方法就可访问需要的private属性了。