程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 學習C++靜態成員注意事宜

學習C++靜態成員注意事宜

編輯:C++入門知識

下面文章著重介紹C++靜態成員,類的靜態數據成員應該在代碼中被顯示的初始化,一定要在類外進行,  C++靜態成員和普通數據成員區別較大,體現在下面幾點:

1.靜態數據成員

在類中定義C++靜態成員成員的方法就是在該成員的前面加上關鍵字static.

定義靜態數據成員的語句格式如下:

  1. class 類名  
  2.  
  3.  {  
  4.  
  5.  ……  
  6.  
  7.  static 類型說明符 成員名;  
  8.  
  9.  ……  
  10.  
  11.  };  

C++靜態成員是類的所有對象共享的成員。靜態數據成員所占的空間不會隨著對象的產生而分配,也不會隨著對象的消失而回收。對靜態數據成員的操作和類中一般數據成員的操作是不一樣的,定義為私有的靜態數據成員不能被外界所訪問。靜態數據成員可由任意訪問權限許可的函數所訪問。

由於靜態數據成員是類的所有對象共享的,而不從屬於任何一個具體對象,所以必須對類的靜態數據成員進行初始化,但對它的初始化不能在類的構造函數中進行,其初始化語句應當寫在程序的全局區域中,並且必須指明其數據類型與所屬的類名,其初始化格式如下:

類型類名::變量名=值;對於在類的public部分說明的靜態數據成員,在類的外部可以不使用成員函數而直接訪問,但在使用時必須用類名指明所屬的類,其訪問格式為:對於在類的非public部分說明的靜態數據成員,則只能由類的成員函數訪問,其訪問方法與訪問類中普通數據成員的訪問方法完全一樣,但在類的外部不能訪問。

2.靜態成員函數

靜態成員函數的定義與一般成員函數的定義相同,只是在其前面冠以static關鍵字,其定義格式如下:

  1. class 類名  
  2.  
  3.  {  
  4.  
  5.  …  
  6.  
  7.  static 類型 函數名形參)  
  8.  
  9.  { 函數體 }  
  10.  
  11.  …  
  12.  
  13.  }; 

說明:

1)類的C++靜態成員函數只能訪問類的靜態數據成員,而不能訪問類中的普通函數成員非靜態數據成員),因為普通數據成員只有類的對象存在時才有意義。

2)C++靜態成員函數與類相聯系,而不與類的對象相聯系,所以,在類的外部調用類中的公有靜態成員函數,必須在其左面加上“類名::”,而不是通過對象名調用公有靜態成員函數。在類的外部不能調用類中的私有靜態成員函數。

  1. C與C++中標准輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved