c++学习记录:operator = 重载
2015-04-21 00:37
302 查看
《effective c++》的确是一本神书,阅读起来的感觉可以用酣畅淋漓来形容,似乎很多以前没有在意的小细节都变得豁然开朗了起来,在条款10中,scott建议我们重载操作符’=’时,返回一个*this的引用。
赋值,我们往往可以写作连锁形式:
赋值采用了右结合律,所以以上连锁赋值被解析为:
首先15赋值给z,然后z更新后,赋值给y,y更新后赋值给x;
所以为了实现“连锁赋值”,赋值操作符必须返回一个reference指向操作符的左侧实参。
赋值,我们往往可以写作连锁形式:
int x,y,z; x = y = z = 10;
赋值采用了右结合律,所以以上连锁赋值被解析为:
x = (y = (z = 10));
首先15赋值给z,然后z更新后,赋值给y,y更新后赋值给x;
所以为了实现“连锁赋值”,赋值操作符必须返回一个reference指向操作符的左侧实参。
class A{ public: ... A& operator=(A& rhs) { ... return *this; } ... };
相关文章推荐
- 改善C++ 程序的150个建议学习之建议33:小心翼翼地重载operator new/ operator delete
- 转---C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- C++ 学习记录(20180130)
- Lua和C++交互 学习记录之五:全局数组交互
- C++学习总结(十四)——类的运算符的重载原理,以及重载的实例
- ISO C++ operator= 重载的一点经验
- C++ 工程实践(2):不要重载全局 ::operator new()
- Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类
- C++学习记录(20180212)
- 【C++学习笔记】函数重载和函数覆盖
- 【记录】Accelerated C++:Practical Programming by Example第0章:开始学习C++
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
- C++重载operator的示例
- C++ 工程实践(2):不要重载全局 ::operator new()
- 学习c++过程记录
- 极客班 c++(下)第二周学习笔记 ——重载 operator new & operator delete
- C++ VARIANT 学习小记录
- C++的学习记录 - 0
- C++ 11 新标准学习记录2
- C++学习记录(留坑)