面向对象C++(8)友元函数和友元类

友元

C++提供了一种允许外部类和外部函数存取类的私有成员和保护成员的辅助方法,即将它们声明为一个给定类的友元,使得其具有类成员函数的访问权限。
但友元本身不是类的成员

在一个类中,可以利用关键字friend将别的模块声明为它的友元,这样,该类中本来隐藏的信息就可以被友元函数访问。

友元函数: 友元是一般函数或者类的成员函数
**友元类:**友元是一个类。该类所有函数都为友元函数

class 类名
{
……//类中的其他成员
freind 类型 函数名 (形参表)
……//类中其他成员

};

非成员函数作友元即友元函数特指类外的函数
可以用两个连续调用的函数
a(){b()},a声明为类1的友元,b声明为类2的友元,也可以完成两个类之间的数据

因为友元函数没有this指针,则参数要有三种情况:

要访问非static成员时,需要对象做参数;

要访问static成员或全局变量时,则不需要对象做参数;

如果做参数的对象是全局对象,则不需要对象做参数.

可以直接调用友元函数,不需要通过对象或指针

友元类:
类A中的某些成员函数想访问B中的数据成员时:
class 类名B
{……//类中的其他成员
friend class 类名A;
……
}

友元的作用之一是(A)

提高程序的运行效率 加强类的封装性 实现数据的隐藏性 增加成员函数的种类

友元不具有传递性,有单向性,友元关系不能被继承

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值