++ i 和i++ 的重载
如何重载++i;
如何重载++i;
2017-11-12
1. 参数
前置()
后置(int)
2. 返回值
前置int&
后置 const int// const是为了防止i++++运算的结果并非预期。
3. 函数体
后置调用前置 // 这样只需要维护前置运算符的代码即可。
步骤:1. 保留旧值到oldvalue; 2. 增加旧值++(*this);3. 返回保留的旧值return oldValue
4. 优先用哪个
因后置会构造并析构oldValue临时对象,故比前置效率低。即优先用前置++i。
UPInt& UPInt::operator++()
{
*this += 1;
return *this;
// 或return ++privateVal;
}
//后置 i++ -----------先调用原值,再++
const UPInt UPInt::operator++(int)
{
UPInt oldValue = *this;
++(*this);
return oldValue;
}
举报