[C++ 核心编程]笔记 4.4.1 全局函数做友元

4.4 友元

概述:

生活中你的家有客厅(Public),有你的卧室(Private)

客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去, 但是呢,你也可以允许你的好闺蜜好基友进去。

  • 在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术
  • 友元的目的就是让一个函数或者类 访问另一个类中私有成员
  • 友元的关键字为 friend

友元的三种实现

  1. 全局函数做友元
  2. 类做友元
  3. 成员函数做友元

4.4.1 全局函数做友元

cpp 复制代码
#include<iostream>
using namespace std;
#include<string>

//建筑物类
class Building
{
	//goodGay全局函数是 Building的好朋友, 可以访问Building中私有成员
	friend void goodGay(Building* building);

public:
	Building()
	{
		m_SittingRoom = "客厅";
		m_BedRoom = "卧室";
	}
public:
	string m_SittingRoom;//客厅

private:
	string m_BedRoom;//卧室
};

//全局函数
void goodGay(Building* building)
{
	cout << "好基友的全局函数 正在访问 : " << building->m_SittingRoom << endl;

	cout << "好基友的全局函数 正在访问 : " << building->m_BedRoom << endl;

}

void test01()
{
	Building building;
	goodGay(&building);
}
int main()
{
	test01();


	system("pause");
	return 0;
}```
相关推荐
大模型码小白2 分钟前
MCP协议开发实战:从零搭建AI Agent工具链
运维·人工智能·算法·机器学习·自动化
STQY燊桐启元(深圳)电子科技3 分钟前
耐高温工况专项适配:相变陶瓷片如何突破高温工业设备散热瓶颈
经验分享·笔记·pcm
luj_176810 分钟前
断舍离中的项目管理智慧
c语言·开发语言·c++·经验分享·算法
FFZero111 分钟前
[mpv架构] (三) mpv 怎么实现 MP4 秒开?
c++·音视频·mpv
老王爱玩车15 分钟前
关于函数递归的优缺点分析
开发语言·数据结构·学习·算法
自小吃多22 分钟前
PCB Editor软件网络飞线常规处理笔记
笔记·嵌入式硬件
无限码力23 分钟前
拼多多 春招&秋招 笔试真题题库目录|笔试题库 + 算法考点详解
算法·pdd笔试真题·pdd笔试真题题解·拼多多春招笔试真题·拼多多秋招笔试真题·拼多多笔试真题题解
Dovis(誓平步青云)26 分钟前
同一条路线在手机和平板上怎样换一种排版
android·开发语言·数据库·智能手机·音视频
STQY燊桐启元(深圳)电子科技27 分钟前
工业物联网网关散热升级,相变陶瓷片解决微型设备积温过热难题
经验分享·笔记·pcm
OPEN-F31 分钟前
C++进阶教程:文件流与字符串流
开发语言·c++·算法