我只是想澄清一下。比如说我想覆盖运算符 =。从我读过的内容来看,这应该返回对对象的引用。正如我从另一个来源读到的,引用只是对象的替代名称。那我可以这样做吗?

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/

10-13 07:01