More Effective C++ NO.6 笔记:++i 与 i++,前置与后置“重载运算符"的区别
区别如下:
1. 参数
前置()
后置(int)
2. 返回值
前置int&
后置 const int// const是为了防止i++++运算的结果并非预期。
3. 函数体
后置调用前置 // 这样只需要维护前置运算符的代码即可。
步骤:1. 保留旧值到oldvalue; 2. 增加旧值++(*this);3. 返回保留的旧值return oldValue
4. 优先用哪个
因后置会构造并析构oldValue临时对象,故比前置效率低。即优先用前置++i。