友 元 类

全局函数做友元

友元函数是使用friend关键字声明的函数,它可以访问相应类的保护成员和私有成员。

#include"iostream"
using namespace std;
#include<string>
class buiding{
	friend void goodgay(buiding house);
public:
	buiding() {
		m_settingrom = "客厅";
		m_bedrom = "卧室";
	}
	string m_settingrom;

private:
	string m_bedrom;
};
void goodgay(buiding house) {
	cout << "好朋友进入" << house.m_settingrom << endl;
	cout << "好朋友进入" << house.m_bedrom << endl;
}
int main() {
	buiding house;
	goodgay(house);
	return 0;
}

类做友元

友元类的使用friend关键字声明的类它的所有成员函数都是相应类的友元函数。

#include"iostream"
using namespace std;
#include<string>
class buiding{
	friend class goodgay;
public:
	buiding() {
		m_settingrom = "客厅";
		m_bedrom = "卧室";
	}
	string m_settingrom;
private:
	string m_bedrom;
};
class goodgay {
public:
	void  visit() {
		cout << "好朋友参观" << house.m_settingrom << endl;
		cout << "好朋友参观" << house.m_bedrom << endl;
	}
private:
	buiding house;

};
int main() {
	goodgay gg;
	gg.visit();
	return 0;
}

成员函数做友元

#include "iostream"
using namespace std;
#include "string"
class Building;
class goodGay
{
public:
 goodGay();
 void visit(); //只让visit函数作为Building的好朋友,可以发访问Building中私有内容
 void visit2(); 
private:
 Building *building;
};
class Building
{
 //告诉编译器  goodGay类中的visit成员函数 是Building好朋友,可以访问私有内容
 friend void goodGay::visit();
public:
 Building();
public:
 string m_SittingRoom; //客厅
private:
 string m_BedRoom;//卧室
};
Building::Building()
{
 this->m_SittingRoom = "客厅";
 this->m_BedRoom = "卧室";
}
goodGay::goodGay()
{
 building = new Building;
}
void goodGay::visit()
{
 cout << "好基友正在访问" << building->m_SittingRoom << endl;
 cout << "好基友正在访问" << building->m_BedRoom << endl;
}
void goodGay::visit2()
{
 cout << "好基友正在访问" << building->m_SittingRoom << endl;
 //cout << "好基友正在访问" << building->m_BedRoom << endl;
}
int main(){
    goodGay  gg;
 gg.visit();
 system("pause");
 return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值