+ -
当前位置:首页 → 问答吧 → c++中的静态变量

c++中的静态变量

时间:2010-09-01

来源:互联网

  1. #include <iostream>

  2. class alex
  3. {
  4. private:
  5.         alex(){}
  6.         int i ;
  7. public:
  8.         static alex& getInstance(){ static alex tt; return tt;}
  9.         int setValue( int a );
  10.         int show();       
  11. };

  12. int alex::setValue( int a )
  13. {
  14.         this->i = a;
  15.         return 0;
  16. }
  17. int

  18. alex::show()
  19. {
  20.         std::cout << &(this->i) << std::endl;
  21.         return 0;
  22. }


  23. int main()
  24. {

  25.         alex::getInstance().setValue(2);
  26.        

  27. alex::getInstance().show();

  28.         alex::getInstance().setValue(3);
  29.         alex::getInstance().show();

  30.         return 0;
  31. }
复制代码
今天碰到一段代码,单体模式的,因为第一次看到是这样实现单体的,感觉很怪
我把它的主要部分抽象出来了,见上面的代码


整个程序ok,两次show打印出的地址是同一块地址


那么我就要问了,c++中的静态变量的生命周期到底是怎么样的?
这个类中,每一次getInstance都要static alex tt;
但到这样不会有多个对象被定义吗?
这个静态变量该如何解释?


谢谢

作者: alexandnpu   发布时间: 2010-09-01

跟C里面的静态变量一样

作者: hellioncu   发布时间: 2010-09-01

回复 hellioncu

还请详细说一下

它的那个getInstance函数实现我感觉很奇怪

每个调用它都要static alex tt;

作者: alexandnpu   发布时间: 2010-09-01



QUOTE:
回复  hellioncu

还请详细说一下

它的那个getInstance函数实现我感觉很奇怪

每个调用它都要stati ...
alexandnpu 发表于 2010-09-01 16:15



http://baike.baidu.com/view/675642.htm?fr=ala0_1 自己看吧

作者: hellioncu   发布时间: 2010-09-01

相关阅读 更多

热门下载

更多