MyClass & operator=(const MyClass &rhs);
是什么意思 ”&”?为什么不是 isMy Class
而不是MyClass &
?
MyClass & operator=(const MyClass &rhs);
是什么意思 ”&”?为什么不是 isMy Class
而不是MyClass &
?
简单地说,&
返回值operator =
是一个引用。
这与运算符重载无关。它与普通函数定义的语法相同:
MyClass& foo()
{
return *this; // returns a reference to MyClass instance
}
MyClass foo()
{
return *this; // returns a copy of MyClass instance
}
返回MyClass&
只是为了使运算符'='在链中工作。返回MyClass&
或不同的东西不会增加重载'='的任何效果。
ReturingMyClass&
帮助我们使用 '=' 类似于我们在内置数据类型上使用它的方式。例如。
int x = y = z = 123;
有关类似的讨论,请参阅 Thinking in C++,(关于 iostreams 的讨论)。