c++ - C++ 中的引用函数

标签 c++ function reference

我有一个函数,当我尝试编译它时出现错误“无法从‘int’转换为‘int &’”。

int& preinc(int& x) { 
    return x++;
}

如果我用 x 替换 x++,它会编译,但我不确定这有什么不同。我认为 x++ 在递增 x 之前返回 x,所以对于 preinc 返回的内容,“return x++”不应该与“return x”相同吗?如果问题出在作用于 x 的++ 运算符上,那么如果我在 return 语句之前或之后放置“x++”行,或者将 x++ 替换为++x,为什么它不会产生任何错误?

最佳答案

x++ 创建原始拷贝的临时拷贝,递增原始拷贝,然后返回临时拷贝。

因为您的函数返回一个引用,您正试图返回对临时拷贝的引用,该拷贝是函数的本地引用,因此无效。

关于c++ - C++ 中的引用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291749/

相关文章:

excel - 在链接中插入单元格

没有指针或引用的c++虚函数调用

java - 在原始类型和引用类型之间如何使用“==”相等运算符?

c++ - getline() 没有填充整个字符串数组

C++ 前向声明设计

c++ - 获取 range-v3 vector 对的交集

javascript - 如何在教育应用程序的 JavaScript 中安全地使用 eval()?

c++ - 使用 size_t 移动 vector 索引是否安全?

python - 当我们将函数分配给名称时,内部会发生什么?

模拟类的javascript函数,最佳实践?