现在的位置: 首页 > 综合 > 正文

静态成员变量

2018年04月14日 ⁄ 综合 ⁄ 共 807字 ⁄ 字号 评论关闭

#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;
}

抱歉!评论已关闭.