【发布时间】:2019-05-05 19:10:51
【问题描述】:
据我了解,原因是我们不必要地为 a=b; 之类的简单语句调用了复制构造函数(两者都是对象)。
我不明白的是,在我的书中写道,我们不应该通过引用传递对象,因为一旦函数终止,该引用就不再存在。
那么我书中的文字是错误的还是我在这里遗漏了什么? Text 参考:Overloading assignment operator in C++
【问题讨论】:
-
您引用的书不完整或书有误。通过引用返回对象很好。一旦函数返回(即函数本地的对象),您不应返回对被破坏的对象的引用
-
“引用不复存在”仅适用于在该函数内创建的堆栈变量。这里
*this在函数返回后不会被销毁。 -
如果链接后面的文字与您的问题相关,您应该将其包含在问题中。抱歉,一键离你已经很远了
-
@user463035818 我已经完全发布了相关文本。感谢您的回答。
-
您书中的文字严重错误。买一本新书。
标签: c++ pass-by-reference assignment-operator pass-by-value