您的位置:首页 > 编程语言 > C语言/C++

More Effective C++ 条款22 考虑以操作符复合形式(op=)取代其独身形式(op)

2015-09-25 20:31 309 查看
1. 一般来说,重载了算数操作符(以下称"独身形式"),那么也就要重载复合赋值操作符(以下称"复合形式").要确保操作符的复合形式例如(operator+=)和独身形式(例如operator+)行为相一致,基于前者实现后者是一个好方法.例如:

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,由于实验平台不同,实验结果会有出入,但是中心思想是相同的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: