加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 实用程序函数的匿名命名空间

发布时间:2020-12-16 07:09:33 所属栏目:百科 来源:网络整理
导读:参见英文答案 Private class functions vs Functions in unnamed namespace????????????????????????????????????4个 我的问题是关于使用匿名命名空间来组织我的代码. 之前每当我需要一些执行一些内部计算的实用方法时,我在类中添加了一个私有方法,进行了计
参见英文答案 > Private class functions vs Functions in unnamed namespace????????????????????????????????????4个
我的问题是关于使用匿名命名空间来组织我的代码.

之前每当我需要一些执行一些内部计算的实用方法时,我在类中添加了一个私有方法,进行了计算并使用了结果.

现在,我不是在类中添加私有方法,而是在类源中实现与匿名命名空间内的函数相同的计算,传递所需的数据并获取结果.
我在阅读了here之后开始了这种做法,即使类的私有方法是其接口的一部分,非成员函数也可以改进类的封装.

哪种方法更好?

解决方法

从概念上将面向客户端的头部中的私有成员函数移动到关联实现文件中的匿名命名空间中的非成员,有很多要说的,主要是因为没有出现在头部中,客户端代码不需要是在添加/更改/删除它们时重新编译,但也因为改进的类封装.也就是说,标头中的任何内联函数都无法查看/调用匿名命名空间内容,并且没有一般的封装可以防止实现文件的转换单元中的其他代码与之耦合.因此,类可以更好地封装在实现文件中其余代码的潜在成本中,但这很少是一个主要的实际问题,因为那些采用指针或引用类类型对象的非成员函数不太容易对于不相关的目的而言,非预期的重用,并且与任意“客户端代码”相比,至少一个翻译单元提供了相对较小的范围.

也就是说,上面的权衡并不是Scott Meyer的链接文章主要关注的内容 – 它侧重于在标题与公共成员函数中声明的非成员非朋友函数的选择.但是,您已经注意到了几个概念.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读