4 c++ reference function post-increment
我有给定的代码,它会收到错误:
错误:从'int'类型的rvalue中无效初始化'int&'类型的非const引用const int b = f(a ++); ^
int f(int& a)
{
return a;
}
int main() {
// your code goes here
int a = 5;
int b = f(a++);
std::cout << b << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这个错误的原因是什么?
您不能将临时绑定到非const引用.
post-increment(a++)递增a并返回带有a旧值的临时值.
你为什么不经过const参考?- 它看起来好像你正在改变函数内部的参数,只是通过值或const引用传递.
如果您正在更改参数,那么您认为行为是什么,考虑到a++已经改变了它?改变是否直观?法律?