重载运算符函数=遇到的问题

img

img


这两个有什么不同吗,为什么一个正确一个错误呢,我认为都是对的啊。

都不完全正确,第二个更是错误
a=b;其实是a.operator=(b); 第二个根本没有在函数中间做改变,所以不起作用
第一个不完全正确是因为,返回值不是引用,所以要发生一次复制。
所以最好是
T& operator=(const T& rh)