返回类型operator = C ++

时间:2016-01-05 23:22:03

标签: c++

我只是要澄清一下。比方说,我想覆盖operator =。根据我的阅读,这应该返回对象的参考。正如我从其他来源读取的内容,Reference只是该对象的替代名称。我可以这样做吗?

MyObject MyObject::operator =(const MyObject &o2) {
    //insert processing code here
    return *this;
}

而不是这个?

MyObject& MyObject::operator =(const MyObject &o2) {
    //insert processing code here
    return *this;
}

1 个答案:

答案 0 :(得分:9)

在第一种情况下,您会返回*this的副本,而不是对*this的引用。所以你应该坚持第二种情况。这两种情况之间存在很大差异,特别是对于那些价格昂贵的类型而言。复制。