首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一元减过载:会员还是非会员?

一元减过载:会员还是非会员?
EN

Stack Overflow用户
提问于 2011-09-09 15:14:51
回答 2查看 887关注 0票数 6

考虑到前缀一元运算符可以“由不带参数的非静态成员函数或具有一个参数的非会员函数实现”(§13.5.1 over.unary/1),除了通常的封装/代码重用设计理论适用于任何成员/非成员函数选择之外,还有什么不同吗?

对于二进制运算符,there's a semantic difference是因为非成员允许其左手操作数的隐式转换.对于一元操作符,似乎没有类似的情况,但标准将std::complex的一元否定操作符定义为非会员(§26.4.6complex.ops),而std::valarraystd::duration的一元否定运算符是成员(§26.6.2.6valarray.unary,§20.11.5.3time.duration.arithmetic)。有细微差别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-09 17:03:35

据我所知,与决定非操作符函数应该是成员函数还是非成员函数相比,没有什么区别。显然,如果可能的话,更喜欢非会员,非朋友(如标准算法)。

票数 2
EN

Stack Overflow用户

发布于 2011-09-09 15:20:20

在可能的情况下使用成员更有意义,因为你不必和朋友一起疯狂。但否则,这只是一个代码风格的决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7363800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档