#include <iostream>
using namespace std;
class A
{
public:
A(int num):it(num){total++;}
static int total;
virtual ~A(){total--;}
int get(){return it;}
void set(int age){it=age;}
private:
int it;
};
int A::total=0;
void show()
{
cout<<A::total<<endl;
}
/*
一 : 静态成员变量属于整个类的全局变量,不属于某个对象.
普通成员变量是属于类中的对象的变量.它不能被所有对象共享.
二 : 静态成员变量必须在全局进行定义,而成员变量由于是属于该类某个对象的,
而不是属于整个类的,因此不用在全局定义.
三 : 在使用静态成员变量时,可以不限定某个具体的对象,只与类名连用即可.
如A::total.而不是A a; a.total;
四 : 静态成员在没有对象之前就存在.
*/
int main()
{
int i;
for (i=0;i<5;i++)
{
A::total++;
show();
}
/*
A b(1),c(2),d(3);
cout<<b.total<<endl<<c.total<<endl<<d.total<<endl;
cout<<b.get()<<endl<<c.get()<<endl<<d.get()<<endl;
*/
/*
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;
}