一种特殊的友情关系 - C++快速入门20

一种特殊的友情关系

 

让编程改变世界

Change the world by program


 

友元关系

  在 C++ 里,有一种特殊的友情关系 -- 友元关系。 不多说,上图: [caption id="attachment_474" align="aligncenter" width="300"] 友元关系[/caption]   好吧,刚刚那张图如果没看过,那你就”奥特曼”啦~ 不过,初学C++,没听说过友元关系那倒是比较正常。。。。。。 首先嘛,任何事物的存在都会有它存在的理由!   在编程中我们通过 public, protected 和 private 这些访问级别可以让程序员控制谁有权使用某个类里的某个方法和属性。这个强大的方案可以把 代码的实现细节掩藏起来,不让没有相应权限的其他代码访问到。   可是在某些场合,一个完全无关的类由于某些特殊原因需要访问到某个 protected 成员,甚至某个 private 成员,那该怎么办呢? 有些朋友可能会说,那就把所有的东西都声明成 public 吧。这样固然可以,但这样不就把原来我们想方设法要保护的方法或属性又暴漏了吗?! 由于这种特殊且尴尬的矛盾存在,C++ 的发明者为此准备了一个解决方案:友元关系。   友元关系是类之间的一个钟特殊关系,这种关系不仅允许友元类访问对方的 public 方法和属性,还允许友元访问对方的 protected 和 private 方法和属性。(现在大家发觉小甲鱼刚开头的比喻多么贴切了吧,得瑟一下) 声明一个友元关系的语法很简单,只要在类声明里的某个地方加上一条 friend class ** 就行了。 注:这条语句可以放在任何地方,放在 public, protected, private 段落里都可以。  

巩固练习

  题目:”朋友”之妻不可亲(为了防止过大尺度遭到和谐,小甲鱼放弃了很多设想好的惊心动魄的方法,改为尺度较小的 kiss() ) Lovers 类有两个子类:分别为 Boyfriend 类和Girlfriend 类。 Lovers 类有情人应有的方法 kiss(), ask() 等。 另增加第三者 Others 类作为路人甲代表,Others 类图谋不轨想要 kiss() Girlfriend 类的对象,我们要帮助他实现愿望! [buy]  获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://urlxf.qq.com/?JZfqe2Q']视频下载[/Downlink] [Downlink href='http://kuai.xunlei.com/d/LTIFSGUSUEBY']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/03/27/3846186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值