假设我在方法中有以下静态变量:
void myClass::myFct()
{
static int myvar=0;
...
}
该行为很明显,“ myvar”仅初始化一次,并且在下一次调用myFct()的过程中在“ ...”期间对其进行更改时,只能看到myvar的最后一个值,而看不到初始值。>
现在我的问题是:删除类“ myClass”然后再次创建该类会发生什么?这会影响“ myvar”(意味着再次初始化)还是保持不变,并且在删除/构造父类后,在那里还能看到最后一个(修改后的)值?
谢谢!
答案 0 :(得分:4)
删除类“ myClass”然后再次创建该类会发生什么?
myvar
不变。它保持不变。请注意,此行为至关重要:成员函数中的本地static
数据不能绑定到特定的类实例。想象有多个线程创建myClass
的不同实例,并不时删除它……如果每次删除/创建都会导致对该变量的读取,行为将是如何不可预测且非线程安全的?