令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相关推荐

  1. Effective C++ 读书笔记之Part2.Constructors, Destructors, and Assignment Operators

    5.Know what functions C++ silently writes and calls. 总结:编译器可以暗自为class创建default构造函数.copy构造函数.copy ass ...

  2. [EffectiveC++]item21:Don't try to return a reference when you must return an object

    转载于:https://www.cnblogs.com/jeanschen/p/3229602.html

  3. Effective C++ 改善55个方法

    美·Scott Meyers 候捷 电子工业 2011 刚才看到个会议时间有点晚,3.25论文都提交了 谷歌去广告的插件, 最后投了这个会议,刚刚好正合适.我说金钱与时间 ACCUSTOMING YO ...

  4. 《Effective C++》》阅读笔记

    第一章    Accustoming Yourself to C++ 1           View C++ as a federation of language (1).             ...

  5. Effective C++改善程序与设计的55个具体做法笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

  6. Effective C++读书笔记 摘自 pandawuwyj的专栏

    Effective C++读书笔记(0)       Start   声明式(Declaration):告诉编译器某个东西的名称和类型,但略去细节.   std::size_t numDigits(i ...

  7. Effective C++知识点

    条款01:视C++为一个语言联邦(View C++ as a federation of languages.) 对于内置类型而言,pass-by-value通常比pass-by-reference高 ...

  8. 10 Python pitfalls

    原文见:http://zephyrfalcon.org/labs/python_pitfalls.html (or however many I'll find ;-) These are not n ...

  9. 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 ...

  10. javascript operators(操作符)

    1.Assignment operators(分配操作) Name Shorthand operator Meaning Assignment x = y x = y Addition assignm ...

最新文章

  1. iOS 集成银联支付swift
  2. 杂七杂八(1)——如何查看本机的.NET Framework版本
  3. ssh中exit命令退出远程服务器_Linux:ssh远程执行命令并自动退出
  4. Flink Forward Asia 2021 正式启动!议题火热征集中!
  5. jzoj4669-[NOIP2016提高A组模拟7.19]弄提纲【LCA,KMP,字符串】
  6. 只读ViewObject和声明性SQL模式
  7. 信奥中的数学:计算几何
  8. javascript的jQuery库小结(1)
  9. Hadoop源代码分析之Configuration
  10. Leetcode(二):Add Two Numbers
  11. CPU个数引起服务器软件启动失败的事故
  12. OFDM学习笔记(四)(信道估计简介)
  13. c语言日程报告闹钟,可以闹钟提醒的日程表,日程闹钟提醒怎么弄
  14. 如何拿到9家大厂的前端校招offer
  15. RIFF和WAVE文件格式
  16. stack unwinding
  17. 区块链与DApp开发(学习总结)
  18. mysql备份报错1356,解决mysqldump备份报错: Couldn't execute 'SHOW FIELDS FROM Unknown error 1356...
  19. 李一男辞职调查:走出华为的叛逆男人
  20. 【天光学术】研究生“憋论文”实况:别问,问就是在写论文

热门文章

  1. js延时函数setTimeout
  2. Glance - 直接操作image
  3. Discuz!NT3.0博客扩展
  4. 7.Swoole的自定义协议功能的使用
  5. 14. model(2)
  6. 17. Element dir 属性
  7. 计算机无故重启是什么原因,事实:无缘无故重新启动计算机有什么问题?计算机无故重启的原因和解决方法...
  8. 洞泾机器人园区地址_2020年4月上海市北新泾商圈写字楼市场租赁情况
  9. 洛谷 P1993 小K的农场 解题报告
  10. 对sppnet网络的理解