C++ 友元

1 为什么使用友元(用途)

作为 C++ 面向对象特性之一的封装性,优点是安全,缺点是在某些特殊场合存在不方便之处。特殊场合:某个类需要实现某种特殊功能,自身无法实现,需要借助“外力”才能实现,但是由于封装性的存在,“外力”无法直接访问这个类的内部数据与方法,C++ 友元特性可以赋予“外力”直接访问这个类的内部数据与方法的能力。“外力”:非成员函数、其它类对象。

2 友元的两种使用方式(用法)

一个类把友元函数和友元类作为自己的朋友,可以实现特殊功能。

2.1 友元函数

2.1.1 使用全局函数作为友元函数

示例:friend/globalFunctions

2.1.2 使用类成员函数作为友元函数

示例:friend/memberFunctions

2.2 友元类

面对复杂功能,使用友元函数就不是很方便,因为需要设计很多友元函数才能完成复杂功能,很不方便。如果把类 A 作为类 B 的友元类,那么类 A 的所有成员函数(在类 A 的成员函数当中),就可以直接访问(使用)类 B 的私有成员,即,友元类可以直接访问对应类的所有成员。

示例:friend/class

3 注意事项

友元函数和友元类,使用 friend 关键字进行声明即可,与访问权限无关,所以,可以放在 public/protected/private 任意限制区域内。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值