流插入与后缀运算符相结合

时间:2014-11-07 19:54:26

标签: c++ operators postfix-operator

假设我正在读取索引从1开始的数据。我希望我的索引基于0。

为什么在流插入运算符之后使用postfix递增/递减运算符是不可接受的?

int a;
std::cin >> a--;

2 个答案:

答案 0 :(得分:4)

后增量运算符的结果是临时对象,即使增量仅严格应用于表达式的末尾。要读取值,需要左值,但临时对象不是左值:它们必然会消失。请注意,您还要将值读入临时值,并在a中保留未指定的值。

答案 1 :(得分:1)

operator>>有一个需要int&的重载。 a--的结果是rvalue,并且您不能将非const引用绑定到rvalue。