当前位置: 首页 > article >正文

[C++ 核心编程]笔记 4.4.3 成员函数做友元

4.4.3 成员函数做友元

核心代码:
在这里插入图片描述
加入此行代码即可使目标成员函数做友元, 即可在另一个类的成员函数访问其中的私有权限

#include<iostream>
using namespace std;
#include<string>

class Building;
class GoodGay
{
public:
	GoodGay();

	void visit();	//让visit 函数可以访问Building中私有成员
	void visit2();	//让visit2函数不可以访问Building中私有成员

	Building* building;
};

class Building
{
	//告诉编译器  GoodGay类下的visit成员函数作为本类的好朋友, 可以访问私有成员
	friend void GoodGay::visit();
public:
	Building();
public:
	string m_SittingRoom;	//客厅

private:
	string m_BedRoom;  //卧室
};

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

GoodGay::GoodGay()
{
	building = new Building;
}

void GoodGay::visit()
{
	cout << "visit 函数正在访问: " << building->m_SittingRoom << endl;

	cout << "visit 函数正在访问: " << building->m_BedRoom << endl;
}
void GoodGay::visit2()
{
	cout << "visit2 函数正在访问: " << building->m_SittingRoom << endl;

	//cout << "visit 函数正在访问: " << building->m_BedRoom << endl;
}

void test01()
{
	GoodGay gg;
	gg.visit();
	gg.visit2();
}

int main()
{
	test01();

	system("pause");
	return 0;
}

http://www.kler.cn/a/387464.html

相关文章:

  • Bundlephobia前端强大的包分析工具
  • 探索学习 Python 的有效方式方法
  • HTTP详解——HTTP基础
  • Http 响应状态码 前后端联调
  • Linux常用命令大全
  • 不同音频振幅dBFS计算方法
  • <<零基础C++第一期, C++入门基础>>
  • 打造完整 Transformer 编码器:逐步实现高效深度学习模块
  • 深度学习在大数据处理中的应用
  • 电子电气架构 --- 车载以太网架构安全性要求
  • Qt使用属性树(QtProPertyBrowser)时,引用报错#include “QtTreePropertyBrowser“解决方案
  • HDR视频技术之二:光电转换与 HDR 图像显示
  • python批量合并excel文件
  • 经典的ORACLE 11/12/19闪回操作
  • 前端vue3若依框架pnpm run dev启动报错
  • AI时代来临,什么是真正的大模型?【大模型扫盲系列】
  • 行转列实现方式总结
  • vue,uniapp,微信小程序解决字符串中出现数字则修改数字样式,以及获取字符串中的数字
  • SpringBoot API版本控制策略详解
  • 【前端】Svelte:动画效果
  • 华为机试HJ33 整数与IP地址间的转换
  • 【复旦微FM33 MCU 开发指南】ADC
  • 微服务中常用分布式锁原理及执行流程
  • delphi 编译多语言工程 error RC2104 : undefined keyword or key name:
  • js id字符串转数组
  • 学习threejs,使用JSON格式保存和加载整个场景