假设我在一个方法中有以下静态变量:
void myClass::myFct()
{
static int myvar=0;
...
}
Run Code Online (Sandbox Code Playgroud)
行为很清楚,“myvar”仅初始化一次,并且无论何时在“...”期间更改 myFct() 下一次调用时,都可以看到 myvar 的最后一个值,但不能看到初始值。
现在我的问题是:当类“myClass”被删除然后再次创建时会发生什么?这会影响“myvar”(意味着它是否再次初始化)还是保持不变,并且在删除/构造父类后,可以在那里看到最后一个(修改后的)值?
谢谢!
当类“myClass”被删除然后再次创建时会发生什么?
没有什么改变myvar
。它保持原样。请注意,此行为至关重要:static
成员函数中的本地数据不能绑定到特定的类实例。想象多个线程创建 的不同实例myClass
,不时删除它......如果每次删除/创建都会导致对该变量的读取,那么行为将是多么不可预测和非线程安全?
归档时间: |
|
查看次数: |
136 次 |
最近记录: |