pat*_*ros 21 c++ return post-increment
如果我有一个带有实例方法和变量的类
class Foo
{
...
int x;
int bar() { return x++; }
};
Run Code Online (Sandbox Code Playgroud)
是否定义了返回后递增变量的行为?
Pet*_*der 40
是的,它相当于:
int bar()
{
int temp = x;
++x;
return temp;
}
Run Code Online (Sandbox Code Playgroud)
它被定义。
它返回x增量前的值。如果x是局部(非静态)变量,则此后增量无效,因为一旦函数返回,函数的局部变量就不再存在。但是如果x是局部静态变量、全局变量或实例变量(如您的情况),其值将在返回后递增。