【发布时间】:2012-02-22 17:41:10
【问题描述】:
我正在对我的 C++ 进行一些修改,并且我正在处理运算符重载,特别是“=”(赋值)运算符。我在网上看,遇到了多个讨论它的话题。在我自己的笔记中,我把我所有的例子都记下来了
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
在我在网上找到的所有引用中,我注意到运算符返回对源对象的引用。 为什么返回对对象的引用而不是什么都没有的正确方法?
【问题讨论】:
-
正确的方式是实现你想要的语义的任何方式; 惯用方式当然是返回
T&(在您的示例中为Foo&)。 -
@MooingDuck,我想我的问题用错了。我一直在假设我的笔记是错误的,但想知道为什么比正确的更多。
标签: c++ operator-overloading return-type assignment-operator