• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

EffectiveC++条款23宁以non-member,non-friend替换member函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. 面向对象的真实意义并非是数据以及操作数据的函数应该被捆绑在一起,而是要求数据应该尽可能地被封装.封装意味着数据的不可见,越多的东西被封装,用户对其直接的接触就越少,用户代码和被封装内容的编译相关度就越低,"包裹弹性"就越高,也就是说,封装性越好,对代码的更改所造成的影响就越低.

2. non-member-non-friend函数实际上比public-member和friend函数要高,因为前者无法访问类的private对象,而后者可以访问类的任何对象,这显然降低了数据的封装性(当然,出于封装性的考虑让函数成为类的non-member并不意味着它不可以是其他类的member).

3. 如果non-member函数之间并没有编译相依关系,那么可以通过把它们声明在同一命名空间不同头文件的方式把它们分离开来.将函数放在多个头文件但隶属于同一命名空间可以使客户轻松地扩展这一组函数,只需要添加更多non-member-non-friend到同一命名空间即可.但member函数却不可以,因为类必须整体定义而不能分割为片片段段,因此就"机能扩充性而言",non-member-non-friend函数同样由于member函数.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++中派生类对基类成员的访问形式发布时间:2022-07-13
下一篇:
河南多校大一训练赛C青蛙的约会发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap