【发布时间】:2013-08-03 15:44:47
【问题描述】:
我正在阅读the Wikipedia page about references。
它包含以下代码:
int& preinc(int& x)
{
return ++x; // "return x++;" would have been wrong
}
preinc(y) = 5; // same as ++y, y = 5
我确实尝试使用return x++; 而不是return ++x; 进行编译。正如预测的那样,这导致了以下错误:
错误:“int&”类型的非常量引用的初始化无效 来自“int”类型的临时
我不明白这个错误。我有一种模糊的直觉,即 x 的增量发生得太晚了(即,在 preinc 的函数调用结束之后)。但是,我不明白这是一个问题,因为变量 x 永远不会停止存在。欢迎任何解释。
【问题讨论】:
标签: c++ reference post-increment