我只是想澄清一下。比如说我想覆盖运算符 =。从我读过的内容来看,这应该返回对对象的引用。正如我从另一个来源读到的,引用只是对象的替代名称。那我可以这样做吗?
MyObject MyObject::operator =(const MyObject &o2) {
//insert processing code here
return *this;
}
而不是这个?
MyObject& MyObject::operator =(const MyObject &o2) {
//insert processing code here
return *this;
}
最佳答案
在第一种情况下,您返回 *this
的拷贝,而不是对 *this
的引用。所以你应该坚持第二种情况。这两种情况之间存在很大差异,特别是对于复制“昂贵”的类型。
关于c++ - C++中运算符=的返回类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34623059/