Effective C++ 学习笔记:让operator=返回*this的引用
2008-01-22 21:51
344 查看
这节解决的是赋值操作符返回左值还是右值的问题!
operator=接受一个对象的引用,同时应该返回一个对象的引用,c++程序员经常犯的一个错误是让operator=返回void,这虽然不是什么错误,但是影响了对象的连续赋值功能。另一个常犯的错误是让operator=返回一个const对象的引用。当要返回一个非const的引用而对象自身是const时,编译器会给你带来无尽的痛苦。右值应该为const常量,返回值为*this。
总结:当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。
operator=接受一个对象的引用,同时应该返回一个对象的引用,c++程序员经常犯的一个错误是让operator=返回void,这虽然不是什么错误,但是影响了对象的连续赋值功能。另一个常犯的错误是让operator=返回一个const对象的引用。当要返回一个非const的引用而对象自身是const时,编译器会给你带来无尽的痛苦。右值应该为const常量,返回值为*this。
总结:当定义自己的赋值运算符时,必须返回赋值运算符左边参数的引用,*this。如果不这样做,就会导致不能连续赋值,或导致调用时的隐式类型转换不能进行,或两种情况同时发生。
相关文章推荐
- Effective C++ 学习笔记:让operator=返回*this的引用
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- Effective C++ 学习笔记:让operator=返回*this的引用
- effective C++笔记之条款15:让operator=返回*this的引用
- Effective C++学习笔记:必须返回一个对象时不要试图返回一个引用
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- 读书笔记 effective c++ Item 21 当你必须返回一个对象的时候,不要尝试返回引用
- Effective C++——》条款10:令operator=返回一个reference to *this
- Effective C++ Item 10 令operator= 返回一个reference to *this
- 读书笔记 effective c++ Item 10 让赋值运算符返回指向*this的引用
- VS2010 C++ 学习笔记(六) this指针 const 指针 引用
- c++学习笔记(返回引用的函数)
- Effective C++ Item 10 令operator= 返回一个reference to *this
- c++学习笔记之函数引用返回
- effective c++ 令operator=返回一个reference to *this
- 读书笔记_Effective_C++_条款十:令operator=返回一个reference to *this
- effective c++ 学习笔记2
- C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符
- Effective C++ 学习笔记(27)
- C++学习笔记4——引用的本质分析