友元类的定义和用法

1.概述
①友元:是定义一个类是,该主动声明哪些其他类或函数是它的朋友,进而给他们定向提供对类的访问特权。
②友元是C++提供的一种破坏数据封装和数据隐藏的机制。
③通过友元将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。
④可以使用友元函数和友元类。

建议:为了确保数据完整性,及数据封装与隐藏原则,建议尽量不使用或少使用。

2、友元函数

①友元函数是在类的声明中由关键字friend修饰说明的非成员函数,在它的函数体中能通过对象名访问 private和protected 成员。

②作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。

③访问对象中的成员必须通过对象名。

④友元是单向的。

友元函数的定义方法(以定义一个Point类为例)
1798715-20190922113402863-362544089.png

(该函数传入引用,节约工耗)

1798715-20190922142800788-1441647970.png

此时,就会遇到在函数中改变对象私有信息的危险,破坏数据的封装。
例如:
1798715-20190922143327994-1478432694.png

输出:1798715-20190922143409739-566208320.png

对比原先的输出:1798715-20190922143526039-687439987.png

如果想防止对象的私有数据被更改 , 可以在传入引用时 加 const修饰 例如:1798715-20190922143754777-1739516028.png

这样 在函数中再想更改对象的私有数据时就会报错,例如:
1798715-20190922143933503-1039595937.png

至于const的用法 相信大家都见过了,在后面的博客中会加以补充。

转载于:https://www.cnblogs.com/yiweicheng123/p/11566776.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值