以非成员非友元替代成员函数

面向对象要求数据应该尽可能的被封装,然而与直观相反,成员函数带来的封装性比非成员非友元要低。

非成员函数可以允许函数有较大的包裹弹性。

如果某些东西被封装,则不可见,不可见的东西越多则我们就有越大的弹性去变化他,因为我们改变的仅仅直接影响看到改变的那些人事物。

 

另一方面如果非成员友元和成员函数机能相似,那么选择非成员友元会好些,因为他们并不增加访问私有成员变量的函数数量。

 

namespace和classse访问的范围不同,前者可以跨越多个源文件。将所有便利函数放在多个头文件中,保证她们的命名空间相同,意味着客户可以轻松扩展这组便利函数,

我们需要做的就是在这组命名空间中添加不同的非成员非友元函数。

还有,若所有参数都需要类型转换的时候,我们希望采用非成员函数去完成。

result=onehal*2;

result=2*onehal;错误

原因是:

只有当参数被列于参数咧内,此参数才是隐式类型转换的合格者。第一次调用伴随一个凡在参数咧内的参数,但是第二次调用的时候并没。

 

posted on   邗影  阅读(249)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示