我正在对 C++ 进行一些修改,并且目前正在处理运算符重载,特别是“=”(赋值)运算符。我在网上查找并发现了多个讨论该问题的主题。在我自己的笔记中,我把所有的例子都记下来了,比如
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
在我在线找到的所有引用中,我注意到该运算符返回对源对象的引用。
为什么返回对象引用的正确方法是返回对象的引用而不是什么都不返回?
通常的形式返回对目标对象的引用以允许赋值链接。否则,将无法执行以下操作:
Foo a, b, c;
// ...
a = b = c;
不过,请记住,正确使用赋值运算符比看起来更难.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)