复制操作符“operator=”注意事项
2017-07-12 22:34
267 查看
以下所述都是根据《Effective C++》中条款10、11和12总结所得。
一、令operator=发挥一个reference to *this
连锁形式赋值:
为了实现“连锁赋值”,复制操作符必须返回一个reference指向操作符的左侧实参。当然这只是一个协议,没有强制性。不遵守的话,代码一样可以通过。
当然这个协议也适用于+=,-=,*=等等复制相关运算。
一、令operator=发挥一个reference to *this
连锁形式赋值:
int x, y, z; x = y = z = 15; //复制采用右结合律,以上赋值被解析为: x = (y = (z = 15));
为了实现“连锁赋值”,复制操作符必须返回一个reference指向操作符的左侧实参。当然这只是一个协议,没有强制性。不遵守的话,代码一样可以通过。
class Widget{ public: ... //返回类型是个reference,指向当前对象 Weight& operator(const Widget& rhs) { ... return* this; //返回左侧对象 } };
当然这个协议也适用于+=,-=,*=等等复制相关运算。
相关文章推荐
- 网站制作中一些注意事项
- 请购单审批流程分析和注意事项
- LINQ to Entities 查询注意事项
- C# 中的 @ 符号的使用及注意事项
- linux下串口编程注意事项
- Fortran 声明的注意事项
- 继承 (inherit )的使用与注意事项
- XmlReader 读取器读取内存流 MemoryStream 的注意事项
- 客户端开发注意事项
- 2017专利申请流程,专利申请中的细节和注意事项
- win10预览版9901虚拟机安装方法及注意事项
- S5PV210之X210平台刷机注意事项
- 学习笔记17 用盘古分词器+window service+lucene.net 使用注意事项
- C#基础之C#代码的注意事项
- 装修注意事项
- PostMan的使用注意事项
- java.util.List接口的方法subList()的使用注意事项
- MySQL 大数据操作注意事项
- canvas注意事项,arc()画的圆变形了
- 安卓开发环境注意事项!