【发布时间】:2016-12-22 04:06:26
【问题描述】:
在下面的例子中 -
#include <iostream>
int someMethod(){
static int a = 20;
static const int result = a + 1;
++a;
std::cout << " [" << a << "] ";
return result;
}
int main(){
std::cout << someMethod() << "\n";
std::cout << someMethod() << "\n";
std::cout << someMethod() << "\n";
}
输出为 -
[21] 21
[22] 21
[23] 21
阻止result 值在对同一函数的后续调用中被修改的原因是什么?我也打印了变量a 的输出,它肯定是递增的,而且由于它也是静态的,所以同一个方法不能存在多个副本。
【问题讨论】:
-
原因是
static const?
标签: c++ c++11 static constants