当我返回传递给函数的引用参数时,内部会发生什么?

时间:2017-02-25 17:02:06

标签: c++

假设我有以下功能:

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

第一个问题,return语句是否复制了引用x的值,因为函数没有返回int&amp ;.

第二个问题,为什么我不能用文字调用函数?如果我确实想要使用有时带有值的文字调用函数怎么办?我尝试用

重载
int f(int x)
{
  x++;
  return x;
}

如果我用文字调用它会编译。但是当我传递一个变量时,我得到了模糊的调用错误。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

也许这就是你想要的:

int F(const int& x) { return x + 1; }
int F(int& x) { x++; return x; }