#include <iostream>
#include <string>
using namespace std;
/*---------------------------------
17-01 静态成员变量
(3)静态成员变量,属于整个类的所有对象,要实例化该类的一个对象时,
可能无法给它分配内存,这样,我们就需要在全局为他开辟内存空间
(4)静态成员变量在没有对象创建之前就存在了;
---------------------------------*/
class A
{
public:
A(int num):it(num){total++;}
static int total;//静态成员变量,属于整个类的所有对象
~A(){total--;}
int get(){return it;}
void set(int age){ it=age;}
private:
int it;//只属于类中某个对象的变量,不能被所有对象共享
};
int A::total=0; //(1)静态成员变量必须在全局进行定义
int main()
{
// const int max=5,int i;//常量max和非常量i不能定义到一块儿
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++)
{ //(2)使用静态成员变量时,可以不限定为某个具体的对象,只与类名连用即可
cout<<"该类有"<<A::total<<"个对象"<<endl;//total属于类,故用A来访问
cout<<"正在删除第"<<a[i]->get()<<"个对象"<<endl;
delete a[i];
}
return 0;
}
运行结果:
该类有5个对象
正在删除第0个对象
该类有4个对象
正在删除第1个对象
该类有3个对象
正在删除第2个对象
该类有2个对象
正在删除第3个对象
该类有1个对象
正在删除第4个对象
Press any key to continue
C++ 特殊类成员 1-- 静态成员变量
最新推荐文章于 2022-03-04 09:56:36 发布