C++友元:在Linklist类中访问Node类的私有属性。

文章讨论了C++编程中友元类的概念,解释了为什么只在Node类中声明Linklist为友元允许Linklist访问其私有属性,而在Linklist类中未声明Node为友元则反之不行。通过类比,阐述了友元关系的单向性,强调了友元关系在访问权限控制方面的作用。
摘要由CSDN通过智能技术生成

问题描述:

一图胜千言:

//只在Node类中声明Linklist为友元可以在Linklist类内访问Node私有属性

而要注意的是

如果只在Linklist类内声明Node类为友元那么在Linklist类内就无法访问Node类的私有属性

逻辑上可以验证,其他的情况可以自行验证。

也很好理解,上面的需求可以对比以下场景:

一个名字叫Linklist的人想要访问Node的私人空间(比如手机),那Node又不认识Linklist啊,凭什么给你看我的手机(private属性)?只有Node说我认识这个Linklist的人(在Node类中声明friend class Linklist;)说Linklist你要访问我的手机(private属性)是吧,给你吧,于是Linklist就开心的访问和玩弄修改Node的private属性了,

那下面Node想要访问Linklist的手机Linklist会答应吗?此时Linklist高高在上,说你认得我,不代表我认得你(在Node类中声明friend class Linklist;与此同时没有在Linklist类中声明friend class Node;)Linklist此时是个渣男,不给你看他的手机(private属性),因为你把它当朋友,它不把你当朋友,所以他像怎么摆弄你就怎么摆弄你,但是你要摆弄他?对不起,他不把你当朋友,不给你机会。

这就是对友元可以访问谁的属性的理解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值