读书笔记: More Effective ++ 操作符 条款6,区别increment/decrement操作符的前置(prefix)和后置(postfix)的形式
2015-05-25 15:18
387 查看
前置操作符,++x,--x, 返回的是引用
后置操作符,x--,x++, 返回的是const的值。
C++是靠依据输入参数的类型(型别)的不同来区别不同的重载函数,
因此前置的重载函数没有入参,而后置参数有入参,该参数不参与函数内的逻辑运算,仅仅作为区别不同的重载函数而已。
UPInt &UPInt::operator++()
{
*this += 1;
return *this;
}
const UPInt UPInt::operator++(int)
{
UPInt tmp=*this;
++(*this);
return tmp;
}
因为后置 参数的返回的类型是const, 因此 x++++是错误的。 编译的时候也会报错。 但是++++x,即连续的两次前置调用是容许的,因为前置返回的是非const的引用。
后置操作符,x--,x++, 返回的是const的值。
C++是靠依据输入参数的类型(型别)的不同来区别不同的重载函数,
因此前置的重载函数没有入参,而后置参数有入参,该参数不参与函数内的逻辑运算,仅仅作为区别不同的重载函数而已。
UPInt &UPInt::operator++()
{
*this += 1;
return *this;
}
const UPInt UPInt::operator++(int)
{
UPInt tmp=*this;
++(*this);
return tmp;
}
因为后置 参数的返回的类型是const, 因此 x++++是错误的。 编译的时候也会报错。 但是++++x,即连续的两次前置调用是容许的,因为前置返回的是非const的引用。
相关文章推荐
- More Effective C++ 条款6 区别 increment/decrement 操作符的前置(prefix)和后置(postfix)形式
- 【M6】区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 6. 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 6. 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 条款6:区别increment/decrement操作符的前置和后置形式
- More Effective C++之Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 6.区别increment/decrement操作符的前置和后置形式
- Item 6:Distinguish between prefix and postfix forms of increment and decrement operators.(More Effective C++)
- 条款六:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 《More Effective C++》Rule 6:区别递加和递减符号的前置和后置形式
- 条款六:区别++和--操作符前置和后置的区别
- 读书笔记《More Effective C++》条款1:仔细区别pointers和references
- 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 自增(increment)、自减(decrement)操作符前缀与后缀形式的区别
- More Effective C++ 条款22 考虑以操作符复合形式(op=)取代其独身形式(op)
- 为什么自增(increment)运算符的 前置(prefix) 比 后置(postfix) 效率高?
- More Effective C++ (条款22:考虑以操作符复合形式(op=)取代其独身形式(op))
- Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别