【发布时间】:2012-01-16 23:31:30
【问题描述】:
如果您的类有引用变量,则需要编写重载赋值运算符。
我的印象是您只能在实例化时设置一次引用,因此不能执行以下操作:
MyClass& MyClass::operator=(const MyClass& rhs)
{
if (&rhs != this)
{
myReference = rhs.myReference;
}
return *this;
}
你如何解决这个问题?
编辑 - 好的,所以我被告知您不能在具有引用的类上使用赋值运算符,很好。但是为什么视觉工作室让我这样做呢?程序运行,一切正常。
【问题讨论】:
-
旁注:如果您使用复制交换习语 (stackoverflow.com/questions/3279543/…),
&rhs != this检查是多余的。 -
@SirYakalot:请看我的编辑。我希望这可以为您澄清一些事情。
标签: c++ reference assignment-operator