Effective C++ 学习笔记:让operator=返回*this的引用
2008-01-28 14:38
281 查看
这节解决的是赋值操作符返回左值还是右值的问题!
operator=接受一个对象的引用,同时应该返回一个对象的引用,c++程序员经常犯的一个错误是让operator=返回void,这虽然不是什么错误,但是影响了对象的连续赋值功能。另一个常犯的错误是让operator=返回一个const对象的引用。当要返回一个非const的引用而对象自身是const时,编译器会给你带来无尽的痛苦。右值应该为const常量,返回值为*this。
总结:当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。
operator=接受一个对象的引用,同时应该返回一个对象的引用,c++程序员经常犯的一个错误是让operator=返回void,这虽然不是什么错误,但是影响了对象的连续赋值功能。另一个常犯的错误是让operator=返回一个const对象的引用。当要返回一个非const的引用而对象自身是const时,编译器会给你带来无尽的痛苦。右值应该为const常量,返回值为*this。
总结:当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。
相关文章推荐
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- Effective C++ 学习笔记:让operator=返回*this的引用
- Effective C++ 学习笔记:让operator=返回*this的引用
- effective c++ 条款10 让operator= 返回*this的引用
- effective C++笔记之条款15:让operator=返回*this的引用
- Effective C++ 10 令operator=返回一个reference to *this 笔记
- 【effective c++】条款10:令operator=返回一个reference to *this
- Effective C++学习笔记:写operator new和operator delete时要遵循常规
- Effective C++ (E3 20、21)笔记之以传const引用代替传值、谨慎指定返回类型
- VS2010 C++ 学习笔记(六) this指针 const 指针 引用
- operator=返回*this的引用
- c++学习笔记之函数引用返回
- 《Effective C++ 》条款10:令operator=返回一个reference to *this
- 《Effect C++》学习------条款10:令 operator= 返回一个 reference to *this
- Effective C++ 条款10解读: 令operator= 返回一个reference to *this
- 《Effective C++》学习笔记条款10 令operator= 返回一个reference to *this
- 条款10:令operator=返回一个*this的引用
- 让operator=返回*this的引用
- Effective C++:条款10:令operator=返回一个reference to *this。