类成员 静态变量的问题
class A
{
...
~A()
{
TRACE("been deleted");
}
void fun()
{
static bool flag = true;
if(flag)
{
flag = false;
....
}
}
...
}
//---------------------------------------------
当我实例化出一个 A 对象 a1,调用了 a1.fun 后,出作用域,a1 销毁。
某一时刻,我又实例化一个 A 对象 a2,用调用了 a2.fun , 发现 flag 的值是 false。
请问下,static bool falg 是编译在 类A的存放静态变量的地方,还是别的什么地方?
[解决办法]
是静态存储区域。
[解决办法]
你需要明白,静态数据不是属于对象,而是类本身,静态数据不是放在堆栈里,在静态区存储的!