1.1 C++友元函数与友元类

news/2025/6/15 21:19:22

C++友元

C++中的友元(friend)是一种特殊的关系,它允许一个非成员函数或非当前类的成员函数访问一个类的私有成员。

具体来说,友元可以是一个函数、一个类或一个整个命名空间。

友元的声明通常在类定义中,它们可以被用来在类的外部访问私有或受保护的成员。

友元关系是单向的,即友元函数可以访问类的私有成员,但类不能访问友元函数的私有成员。

C++友元函数

如果在本类以外的其他地方定义了一个函数,在类体中用 friend 对其进行声明,此函数就称为本类的友元函数。

友元函数可以访问类的私有成员和受保护成员,就像类的成员函数一样。

友元函数可以是全局函数、类的静态成员函数或其他类的成员函数。

友元函数的声明通常放在类定义中,在函数定义中需要使用关键字friend来标识它是一个友元函数。

友元函数的作用在于,当需要访问类的私有成员或受保护成员时,可以通过友元函数来完成,而不必将这些成员公开给其他函数或类。

友元函数不仅可以是一般函数,还可以是另一个类中的成员函数。

下面举个一个具体的友元函数案例:
在这里插入图片描述
编译运行结果:
在这里插入图片描述
在上面的代码中,定义了一个 MyFriend 类,它有一个私有成员变量 myPrivateVar。

然后声明了一个友元函数 printPrivateVar

它可以访问类的私有成员变量。

在主函数中,创建了一个 MyClass 对象 obj,并调用了友元函数 printPrivateVar,它输出了类的私有成员变量 myPrivateVar 的值。

C++友元类

C++中的友元类(friend class)是指在类定义中声明为友元的另一个类。

友元类可以访问类的私有成员和受保护成员,就像类的成员函数一样。

友元类的声明通常放在类定义中,在类定义中需要使用关键字friend来标识它是一个友元类。

友元类的作用在于,当需要访问类的私有成员或受保护成员时,可以通过友元类来完成,而不必将这些成员公开给其他类。

与友元函数不同,友元类之间可以互相访问彼此的私有成员和受保护成员。

下面举个一个具体的友元类案例:
在这里插入图片描述
编译运行结果:
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_40240275/article/details/131108886
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-4645357.html

相关文章

scau数据结构实验

目录 顺序线性表的基本操作 合并顺序表 顺序表逆置 链式线性表的基本操作 合并链表 **反转链表 ** **顺序栈的基本操作** 栈的应用——进制转换 括号匹配检验 **汉诺塔问题** 计算next值 **KMP算法** 不完整的排序 二叉树的构建及遍历操作 求二叉…

redis数据结构以及性能原理

redis数据类型 Stringhashlistsetzset各个数据类型使用场景 String:token,标识等的存储hash:对象存储list:栈(FILO-先进后出),队列:(FIFO-先进先出),阻塞队列等set:关系网…

Python实现的端午节吃棕子除五毒体感小游戏源码,利用Paddlehub制作的端午体感小游戏,根据摄像头识别的人脸进行控制

利用Paddlehub制作端午体感小游戏 前言 马上要端午节,所以干脆再重写一些逻辑,做个端午节定制小游戏吧. 端午特色 游戏的贴图全换成了端午节相关贴图:三种粽子造型 雄黄酒 以及五毒:蛇,壁虎,蜈蚣,蟾蜍,蟹子 其实五毒也是我在逛了粽子博物馆才看到的哈哈哈,所以虽…

java+springboot8高校教职工教师档案管理系统

系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理用户表模块、token表模块、公告信息模块、教职工模块、工资信息模块、调动离职模块、配置文件模块、出勤信息模…

【Axure教程】通过输入框动态维护可视化图表

与静态图表相比,动态图表更能吸引观众的眼球并提供更好的视觉效果。动态元素可以吸引观众的注意力,使数据更生动、更具交互性。这有助于提高信息传达的效果,并能够引起观众的兴趣和参与。所以今天作者就教大家,如果通过输入框元件…

【DepthFilter】深度滤波器

14讲P326-327 函数实现一个深度滤波器,用于计算图像中某个像素点的深度值。算法步骤的含义和含义: 将当前帧的像素点和参考帧的像素点通过三角化计算深度。将参考帧到当前帧的变换矩阵 T_C_R 转换为当前帧到参考帧的变换矩阵 T_R_C。将参考帧像素点 pt_…

永善公司招聘网络红人主播,高薪招募线上策略娱乐主播

永善公司招聘网络红人主播,高薪招募线上策略娱乐主播#主播#高薪职业#直播 招聘 公司直招网络主播多名! 直播平台:抖音、酷狗 不收任何费用 没有经验也没有关系只要你有梦想,只要你肯努力并 且有一颗想发大财的野心&#xff…

freeswitch在centos 7下编译和安装

前言 freswitch在centos7下编译总体上还是步骤比较复杂的。 忠告 千万别使用 CentOS 部署 FreeSWITCH !!! 以下大部分都是笔者用 CentOS7 自编译踩得坑。 建议直接 Debian 安装官方编译好的包!!!可以少踩很…

ChatGPT为什么这么强?我们该培养孩子的什么素养才能让他们从容进入GPT时代?

我们有一个共识,这个时代对人的要求更高了,人们要有复合能力、综合素养,具体来说,我们应该培养孩子的什么素养呢? 所有领域的教育还是需要一定的练习,但是这个练习不能是机械重复的。一个人必须通过练习具…

轻量应用服务器哪款性价比高?

最近云服务器618活动正在火热进行中,选对时间入手自己心仪的云服务器其实可以为你省去一大笔费用,这里先开门见山将三家的云服务器活动粒度做个对比。 腾讯云 懂行的人一看这种配置性价比就会内心无比激动,按照平时的价格根本买不到这么实惠的…