首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类成员 静态变量的有关问题

2013-03-16 
类成员 静态变量的问题class A{...~A(){TRACE(been deleted)}voidfun(){static bool flag trueif(fl

类成员 静态变量的问题
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的存放静态变量的地方,还是别的什么地方?
[解决办法]
是静态存储区域。
[解决办法]
你需要明白,静态数据不是属于对象,而是类本身,静态数据不是放在堆栈里,在静态区存储的!

热点排行