静态成员变量

静态成员变量:

      静态成员变量属于整个类。

      通过类名或则对象名访问公有的静态变量。

      一个类的所有对象都可以访问同一个共有的静态变量。

特性:

  定义是直接加上static关键字。

  静态变量的存储是在静态存储区。

语法:

  Type  ClassName::VarName = value; (在类的外部定义)

 

#include <stdio.h>

class Test
{
private:
    static int cCount;
public:
    Test()
    {
        cCount++;
    }
    ~Test()
    {
        --cCount;
    }
    int getCount()
    {
        return cCount;
    }
};

int Test::cCount = 0;   // 单独定义静态成员变量,来分配空间

Test gTest;

int main()
{
    Test t1;
    Test t2;
    
    printf("count = %d\n", gTest.getCount());  // 3
    printf("count = %d\n", t1.getCount());     // 3
    printf("count = %d\n", t2.getCount());     // 3
    
    Test* pt = new Test();
    
    printf("count = %d\n", pt->getCount());    // 4 
    
    delete pt;
    
    printf("count = %d\n", gTest.getCount());  // 3
    
    return 0;
}

 

posted @ 2019-05-07 16:17  张不源  Views(290)  Comments(0Edit  收藏  举报