我只是要澄清一下。比方说,我想覆盖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;
}
答案 0 :(得分:9)
在第一种情况下,您会返回*this
的副本,而不是对*this
的引用。所以你应该坚持第二种情况。这两种情况之间存在很大差异,特别是对于那些价格昂贵的类型而言。复制。