这节解决的是赋值操作符返回左值还是右值的问题!
operator=接受一个对象的引用,同时应该返回一个对象的引用,c++程序员经常犯的一个错误是让operator=返回void,这虽然不是什么错误,但是影响了对象的连续赋值功能。另一个常犯的错误是让operator=返回一个const对象的引用。当要返回一个非const的引用而对象自身是const时,编译器会给你带来无尽的痛苦。右值应该为const常量,返回值为*this。
总结:当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。