C++ 友元

最早接触C++的时候,曾经在很多资料上不止一次的看到,应该尽量使用C++的低级特性去编程。 某些高级特性会导致问题,如模版会导致程序难以调试,友元会破坏程序封闭性。 可是C++之所以是一门优秀到完美的编程语言,绝非因为和一般面向对象语言的“普适”,相反,作为一个合格的程序员,应该学会掌握C++的高级特性,让自己的代码更加优美,让程序更加有效率。 

黑格尔说“存在即合理”,  对于友元的“合理”, 我认为有如下几点:

1.     友元可以扩展类的功能。  对于一些结构固定、数据固定但是操作总是在更新的类,定义友元可以避免对该类的不断修改。因为友元可以访问私有变量, 这是它优于组合的一点,当然,也是一个缺陷; 仁者见仁,智者见智——它成为缺陷的唯一原因是:你用错了。 

2.     友元可以表现一对多的关系。   这个一对多比较宽泛,既可以是“一个友元对象对应多个宿主对象”, 也可以是“一个友元类对应多个宿主类”; 当然,依旧有利有弊,只看使用者用法是否得当。 

3.   友元可以更好的实现封装和复用。  如同1中所述,定义友元之后,如果情景发生改变,可以做到对原接口最小的更改。


一孔之见,希望读者批评指正。   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值