李珍宝的blog

李珍宝的BLOG

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  51 Posts :: 1 Stories :: 160 Comments :: 0 Trackbacks

C++类的成员函数中,使用static变量时,该变量是放在类存储区,而不是对象存储区,所以所有该类的对象共享该静态变量。

如以下代码:

#include <stdio.h>
#include <iostream>
using namespace std;

class Cs
{
public:
 void t(void)
 {
  static i=0;
  cout<<i++<<endl;
 }
};


int main(int argc, char* argv[])
{
 Cs c1;
 Cs c2;
 Cs c3;
 c1.t();
 c2.t();
 c3.t();
 return 0;
}

 



最后输出的数字不是0,而是2

posted on 2010-01-21 15:14 李珍宝 阅读(2031) 评论(1)  编辑 收藏 引用 所属分类: 软件

Feedback

# re: C++类的成员函数中使用静态变量的陷阱 2012-01-06 10:44 zloves
我也遇到这个问题了,想在网上求证,结果搜到了楼主的帖子  回复  更多评论
  

只有注册用户登录后才能发表评论。