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

1075

被折叠的 条评论
为什么被折叠?



