#include "stdafx.h"
#include "iostream.h"
class A
{public:
A(int num):it(num){ total++;}
virtual int get(){return it;}
virtual ~A(){total--;}
static int total; //该变量不属于某个对象,而是属于整个类中所有对象的成员变量
private:
int it;
};
int A::total=0;//当实例化该类的一个对象的时候,
//可能无法给它分配内存 这样必须在全局为它开辟内存空间
int main()
{
const int max=5;
int i;
A *a[max];
for( i=0;i<max;i++)
a[i]=new A(i);
for ( i=0;i<max;i++)
{
cout<<"现在有"<<A::total<<"个对象"<<endl;
cout<<"正在删除第"<<a[i]->get()<<"个对象"<<endl;
delete a[i];
}
return 0;
}
/*************************************
1.静态成员变量是属于整个类的全局变量,它不单属于某个对象,
普通成员变量是属于类中对象的变量,它不能被所有对象所共享
/*************************************
2. 静态成员变量必须在全局进行定义,而由于普通变量在创建一个对象的时候可以对它进行初始化
因此就不需要单独对它进行定义,只要声明即可
/**************************************
3.在使用静态成员变量时,可以不将其限定为某个对象,只与类名连用即可
/**************************************
4.静态成员变量在没有对象之前就存在