在C++类中可以定义静态成员变量(使用static声明)
1、静态成员变量属于整个类所有
2、静态成员变量的生命期不依赖任何对象
3、可以通过类名直接访问静态成员变量(设置成public),也可以通过对象名访问
4、所有对象共享类的静态成员变量
ps:静态成员变量需要在类外单独分配空间;静态变量处于全局数据区
#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());
printf("count = %d\n", t1.getCount());
printf("count = %d\n", t2.getCount());
Test* pt = new Test();
printf("count = %d\n", pt->getCount());
delete pt;
printf("count = %d\n", gTest.getCount());
return 0;
}