gpt4 book ai didi

c++ - 免费运营商与成员(member)运营商

转载 作者:太空狗 更新时间:2023-10-29 20:16:48 25 4
gpt4 key购买 nike

class Currency
{
public:
explicit Currency(unsigned int value);
// method form of operator+=
Currency &operator +=(const Currency &other); // understood!
...
};

以下代码显示了使用运算符的自由函数版本的等效 API:

class Currency
{
public:
explicit Currency(unsigned int value);
...
};

// free function form of operator+=
Currency &operator +=(Currency &lhs, const Currency &rhs); // ???

问题 1> 为什么 free 函数应该返回 Currency& 而不是 Currency?这是一个好的做法吗?

问题2> 在实现中,应该使用哪个变量返回,lhs还是rhs

最佳答案

operator+= 的标准行为是将 lhs 递增 rhs 并返回对 lhs 的引用。

在成员函数中,lhs 是调用对象,因此,它应该返回对自身的引用。您似乎期望自由函数的行为与成员函数不同。为什么?

关于c++ - 免费运营商与成员(member)运营商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8509046/

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