我只是要澄清一下.比方说,我想覆盖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; }
vsoftco.. 9
在第一种情况下,您返回的是副本*this
,而不是对其的引用*this
.所以你应该坚持第二种情况.这两种情况之间存在很大差异,特别是对于复制"昂贵"的类型.
在第一种情况下,您返回的是副本*this
,而不是对其的引用*this
.所以你应该坚持第二种情况.这两种情况之间存在很大差异,特别是对于复制"昂贵"的类型.