10. Have assignment operators return a reference to *this
令operator = 返回一个reference to *this
int x, y, z;
x = y = z = 15;
这是“连锁赋值”。
对于自定义类,如果要满足连锁赋值,赋值操作符必须返回一个引用指向操作符的左侧实参。其他复合赋值操作符也一样。
class Widget
{public:...Widget& operator = (const Widget& rhs) // 赋值操作符{...return *this;}Widget& operator += (const Widget& rhs) // 复合赋值操作符{...return *this;}...
}
赋值操作符返回引用并无强制性,不返回引用编译器一样能够编译通过。
只是像STL中的string、vector、complex都遵循“赋值操作符、复合赋值操作符都返回引用”这一个规则,建议自定义类也遵循。
请注意:
- 令赋值(assignment)操作符返回一个 reference to *this。
10. Have assignment operators return a reference to *this相关推荐
- Effective C++ 读书笔记之Part2.Constructors, Destructors, and Assignment Operators
5.Know what functions C++ silently writes and calls. 总结:编译器可以暗自为class创建default构造函数.copy构造函数.copy ass ...
- [EffectiveC++]item21:Don't try to return a reference when you must return an object
转载于:https://www.cnblogs.com/jeanschen/p/3229602.html
- Effective C++ 改善55个方法
美·Scott Meyers 候捷 电子工业 2011 刚才看到个会议时间有点晚,3.25论文都提交了 谷歌去广告的插件, 最后投了这个会议,刚刚好正合适.我说金钱与时间 ACCUSTOMING YO ...
- 《Effective C++》》阅读笔记
第一章 Accustoming Yourself to C++ 1 View C++ as a federation of language (1). ...
- Effective C++改善程序与设计的55个具体做法笔记
Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...
- Effective C++读书笔记 摘自 pandawuwyj的专栏
Effective C++读书笔记(0) Start 声明式(Declaration):告诉编译器某个东西的名称和类型,但略去细节. std::size_t numDigits(i ...
- Effective C++知识点
条款01:视C++为一个语言联邦(View C++ as a federation of languages.) 对于内置类型而言,pass-by-value通常比pass-by-reference高 ...
- 10 Python pitfalls
原文见:http://zephyrfalcon.org/labs/python_pitfalls.html (or however many I'll find ;-) These are not n ...
- Reference, List, and Completion of javascript
"A value is an entity that takes on one of nine types. There are nine types (Undefined, Null, B ...
- javascript operators(操作符)
1.Assignment operators(分配操作) Name Shorthand operator Meaning Assignment x = y x = y Addition assignm ...
最新文章
- iOS 集成银联支付swift
- 杂七杂八(1)——如何查看本机的.NET Framework版本
- ssh中exit命令退出远程服务器_Linux:ssh远程执行命令并自动退出
- Flink Forward Asia 2021 正式启动!议题火热征集中!
- jzoj4669-[NOIP2016提高A组模拟7.19]弄提纲【LCA,KMP,字符串】
- 只读ViewObject和声明性SQL模式
- 信奥中的数学:计算几何
- javascript的jQuery库小结(1)
- Hadoop源代码分析之Configuration
- Leetcode(二):Add Two Numbers
- CPU个数引起服务器软件启动失败的事故
- OFDM学习笔记(四)(信道估计简介)
- c语言日程报告闹钟,可以闹钟提醒的日程表,日程闹钟提醒怎么弄
- 如何拿到9家大厂的前端校招offer
- RIFF和WAVE文件格式
- stack unwinding
- 区块链与DApp开发(学习总结)
- mysql备份报错1356,解决mysqldump备份报错: Couldn't execute 'SHOW FIELDS FROM Unknown error 1356...
- 李一男辞职调查:走出华为的叛逆男人
- 【天光学术】研究生“憋论文”实况:别问,问就是在写论文
热门文章
- js延时函数setTimeout
- Glance - 直接操作image
- Discuz!NT3.0博客扩展
- 7.Swoole的自定义协议功能的使用
- 14. model(2)
- 17. Element dir 属性
- 计算机无故重启是什么原因,事实:无缘无故重新启动计算机有什么问题?计算机无故重启的原因和解决方法...
- 洞泾机器人园区地址_2020年4月上海市北新泾商圈写字楼市场租赁情况
- 洛谷 P1993 小K的农场 解题报告
- 对sppnet网络的理解