C++ 可以在C++;返回某些内容,然后执行其代码?

C++ 可以在C++;返回某些内容,然后执行其代码?,c++,operators,C++,Operators,这样做时: i2 = i++; ++操作符将返回i,然后将i增加1 函数是否也可以返回某个值,然后执行其代码?如果要自己实现后缀增量,则首先存储原始值,然后使用增量,但仍然返回原始值: Number Number::operator++ (int) { Number ans = *this; ++(*this); return ans; } 有关更多详细信息,请查看此常见问题解答: 因此,在C++中返回后没有函数代码执行。不,一旦函数的作用域结束(在关闭}时),就不能执行更多的代

这样做时:

i2 = i++;
++
操作符将返回
i
,然后将
i
增加1


函数是否也可以返回某个值,然后执行其代码?

如果要自己实现后缀增量,则首先存储原始值,然后使用增量,但仍然返回原始值:

Number Number::operator++ (int)
{
  Number ans = *this;
  ++(*this);
  return ans;
}
有关更多详细信息,请查看此常见问题解答:


因此,在
C++

中返回后没有函数代码执行。不,一旦函数的作用域结束(在关闭
}
时),就不能执行更多的代码

但是,该函数可以存储输入的旧状态,修改输入,并返回输入的旧值。这提供了在函数返回值后执行代码的效果。例如:

int f(int &n) {
  int x = n;    // store input
  n = 42;       // input is modified before return
  return x;     // old input is returned
}

int b = f(a);  // b is equal to a
               // but now a is 42

正如您所观察到的,后增量是此类行为有用的一个示例。另一个例子是,它给出了在返回值后修改输入的外观。

No.
i++
存储旧值,然后执行其代码(增量),然后返回存储的值。在什么实际情况下这会有用?如果
i
int
i++
不返回任何内容。这不是一个函数。它是一个表达式,其值是
i
的旧值。表达有价值;函数返回值。他们不是一回事。当函数返回时,它就完成了;您可以在这里看到,用户讨论了
returni++
expression的用法。一些答案指出,编译器无论如何都会生成更长的代码,就像编写
intresult=i++我返回结果。所以这并不重要。告诉我们你想做什么,而不是你想怎么做。