1. 程式人生 > >C++類中的靜態成員

C++類中的靜態成員

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每一個普通資料成員的副本,但靜態資料成員只有一個例項存在,與定義了多少類物件無關。
靜態資料成員的用途之一是統計有多少個物件實際存在。
靜態資料成員不能在類中初始化,實際上類定義只是在描述物件的藍圖,在其中指定初值是不允許的。也不能在夠造函式中初始化該成員,因為靜態資料成員為類的各個物件共享,那麼每次建立一個類的物件則靜態資料成員都要被重新初始化。

#include<iostream.h>

class widget { public:  widget()  {   count++;  }  ~widget()  {   --count;  }  static int num()  {   return count;  } private:  static int count; };

int widget::count=0;

int main() {  widget x,y;

 cout<<"The num is"<<widget::num()<<endl;  if(widget::num()>1)  {   widget x,y,z;   cout<<"the num is"<<widget::num()<<endl;  }  widget z;  cout<<"the num is"<<widget::num()<<endl;

 return 0; }