Effective C++ 条款10
2015-11-20 15:20
274 查看
令operator=返回一个reference to *this 将operator=返回一个reference是为了什么呢?答案很简单,就是为了实现连锁形式。 什么是连锁形式,如int x,y,z;x=y=z=15;这种形式就是连锁形式。 声明一下。这只是个大家一致同意的写法。你也可以不遵守这种写法。可是无论是内置类型还是标准库的类型,都遵循这条规则。为了达到程序的一致性,也是遵守的比较好。 以下是涉及的代码: #include<iostream> using namespace std; class Widget { public: Widget() { cout<<"Default Ctor"<<endl; } Widget(const Widget& rhs) { cout<<"Copy Ctor"<<endl; } Widget& operator=(const Widget& rhs) { cout<<"operator="<<endl; return *this; } }; int main() { Widget a,b,c; a=b=c; return 0; }返回引用的好处:少调用了两次复制构造函数
相关文章推荐
- 纯C++11标准写类topk算法(不稳定排序)类模板
- 插入排序
- C++异常处理
- C语言中指针与函数的关联2(数组的降级)
- 学习笔记8-C语言文件
- 打印结果和调试结果不一样(C语言)
- 虚函数表与虚函数指针
- 关于指针的引用的讲解
- C++泛型算法中的accumulate
- VC++ CopyFile、MoveFile函数用法
- c语言之同余定理的应用求2001的2003次方除以13的余数
- C++内存泄漏
- 24.c/c++程序员面试宝典-多态
- C++类的常量对象与常量成员函数
- sscanf的使用
- c++通用模板类(template class)定义实现详细介绍
- 值得学习的C语言开源项目
- 2048游戏C语言代码
- c++STL 中的copy函数
- C++虚函数实现原理与代价