我正在对我的 C++ 进行一些修订,并且我正在处理运算符重载,特别是“=”(赋值)运算符。我在网上看,遇到了多个讨论它的话题。在我自己的笔记中,我把我所有的例子都记下来了
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
在我在网上找到的所有引用中,我注意到运算符返回对源对象的引用。为什么返回对对象的引用而不是什么都没有的正确方法是什么?
原文由 maccard 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常的形式返回对目标对象的引用以允许赋值链接。否则,将无法做到:
不过,请记住,正确分配操作符 比看起来更难。