gpt4 book ai didi

c++ - 一元负重载 : member or non-member?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:27 28 4
gpt4 key购买 nike

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

对于二元运算符,there's a semantic difference因为非成员允许对其左侧操作数进行隐式转换。一元运算符似乎没有类似的东西,但标准将 std::complex 的一元否定运算符定义为非成员(§26.4.6[complex.ops] ),而 std::valarraystd::duration 的一元否定运算符是成员(§26.6.2.6[valarray.unary],§20.11.5.3 [时间.持续时间.算术])。有细微差别吗?

最佳答案

据我所知,与决定非运算符函数应该是成员函数还是非成员函数相比,没有区别。显然在可能的情况下更喜欢非成员,非 friend (就像标准算法)。

关于c++ - 一元负重载 : member or non-member?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com