More Effective C++ 条款22 考虑以操作符复合形式(op=)取代其独身形式(op)
2015-09-25 20:31
309 查看
1. 一般来说,重载了算数操作符(以下称"独身形式"),那么也就要重载复合赋值操作符(以下称"复合形式").要确保操作符的复合形式例如(operator+=)和独身形式(例如operator+)行为相一致,基于前者实现后者是一个好方法.例如:
View Code
实验结果为:
只调用了一次copy constructor,可见直接将operator+中的temp替换为外层的c,即实行了NRVO优化.
以上实验的详细解释可参照http://www.xuebuyuan.com/1595871.html,由于实验平台不同,实验结果会有出入,但是中心思想是相同的.
Rational operator+(const Rational& lhs, const Rational& rhs){ Rational temp(lhs); temp += rhs; return temp; }
View Code
实验结果为:
只调用了一次copy constructor,可见直接将operator+中的temp替换为外层的c,即实行了NRVO优化.
以上实验的详细解释可参照http://www.xuebuyuan.com/1595871.html,由于实验平台不同,实验结果会有出入,但是中心思想是相同的.
相关文章推荐
- 1.C++顺序表
- 类,抽象基类,接口类三者间的区别与联系(C++)
- 【C语言】C语言里面的冒号
- 兼容C++的C头文件书写方式
- C++内存占用问题
- C++试题
- C++面试题(二)
- C++学习记录之deque容器
- 最小生成树--prim算法的c语言描述
- VC++ lib的制作
- C语言中输入输出重定向,freopen()妙用。
- C语言运算符优先级和结合性
- C语言结构体对齐
- 微秒级时间函数
- 一个可复用的C++ 3阶实方阵类和4阶实方阵类(兼容与扩展了DX中的4阶实方阵类);四元数(quaternion)模板类的使用
- 哇!原来C语言用处这么大!赶紧收藏吧
- C++中cin的详细用法
- C++中cin的详细用法
- C语言指针题集
- 用c语言打印自定义的乘法口诀表。例如:输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。