joh*_*ith 5 c++ reference function
我有一个函数,当我尝试编译时,它给出了错误"无法从'int'转换为'int&'".
int& preinc(int& x) {
return x++;
}
Run Code Online (Sandbox Code Playgroud)
如果我用x替换x ++,它将编译,但我不确定它是如何使它有任何不同.我认为x ++在x递增x之前返回x,所以不应该"返回x ++"与preinc返回的"return x"相同吗?如果问题在于++运算符作用于x,那么如果我在return语句之前或之后放置行"x ++",或者用++ x替换x ++,为什么它不会产生任何错误?
Lig*_*ica 11
你的功能做了两件事:
x通过引用递增您传入的内容x++对本地的引用是无效的,并且从该函数返回任何内容似乎完全是多余的.
以下是固定的,但我仍然认为有更好的方法:
int preinc(int& x) {
return x++; // return by value
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |