IT伪宅男

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

C++有一个特殊的成员变量修饰符:static。为这个类定义一个且仅定义一个变量:

 1 class stack{
 2     private:
 3       static int stack_count; // 当前使用的栈的数目
 4       int count; // 栈中元素数
 5     public:
 6         stack(){
 7             ++stack_count;
 8             count = 0;
 9         }
10       ~stack() {
11           // 减少一个栈
12           --count;
13         }
14 };

静态和非静态成员变量之间的区别在于成员变量属于对象,而静态成员变量属于类。如果有:

1 stack a_stack;
2 stack b_stack;

a_stack.stack_count和b_stack.stack.count相同。类stack只有一个stack_count。C++允许使用下面的语法访问静态成员变量:

<class>::<variable>

static的含义:

使  用 含  义
任何函数体外部的变量 变量的范围局限于声明它的文件
函数内的变量声明 这个变量是永久的。初始化一次,虽然会递归调用这个函数但是仅创建一个副本
函数声明 函数的范围局限于在声明它的文件
成员变量 为每个类(不是每个对象)创建一个变量的副本
成员函数 函数只能访问类的静态成员

 

posted on 2013-04-12 12:28  IT伪宅男  阅读(218)  评论(0编辑  收藏  举报