否,一旦函数的作用域结束(在结束的}
),就不能执行进一步的代码。
但是,该函数可以存储输入的旧状态,修改输入,并返回输入的旧值。 这给出了在函数返回值后执行代码的效果。 例如:
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
正如您所观察到的,后增量是这种行为有用的一个例子。 另一个例子是std::exchange
,它给出了在返回值之后修改输入的外观。
如果您要自己实现后缀增量,您将首先存储原始值,然后使用增量但仍然返回原始值:
Number Number::operator++ (int)
{
Number ans = *this;
++(*this);
return ans;
}
有关详细信息,您可以查看以下常见问题:https://isocpp.org/wiki/FAQ/operator-overloading#increment-pre-post-overloading
所以在C++
中返回后没有函数代码执行。