背景:
每個類的對象可以是很多,當需要某個數據在類的所有對象中共享時,則需要用靜態成員。其聲明用static,可分為靜態數據成員和靜態成員函
數,簡言之,即數據和函數。它又可分為公共靜態數據成員和保護、私有靜態數據成員。保護和私有靜態數據成員只能被類的內部訪問,訪問時
一般的用法是: 類名::靜態數據成員名
應用:
靜態成員在類中不會隨著對象的產生而分配空間,也不會隨對象的消失而回收空間。所以它的空間分配不在類里的構造函數和析構函數中完
成。靜態數據成員的使用遵循變量的規則,只是它的范圍在某個類的范圍內。靜態成員函數可以有參數,可以有返回值。
我們知道類的聲明和定義是不占用空間的,其對象才會占用空間。而類的靜態成員是在程序運行時就會存在,會占用空間。因而靜態成員的聲
明在類中,定義和初始化卻不能在類中。它的空間分配可以存在三個地方:1.作為類定義的內部實現,那里有類的成員函數定義;2.作為類的外部
接口的頭文件,那里有類的聲明;3.在應用程序的main()函數前的全局數據聲明和定義處。
常用的場合:
A:用來保存流動變化的對象個數。
B:作為一個標志,指示一個特定的動作是否發生(如:創建幾個對象,每個對象要對同一個磁盤文件進行讀寫,但同時顯然只能允許一個對象進行寫文件,在這種情況下,用戶希望說明一個靜態數據成員指出文件何時正在使用,何時處于空閑)。
C:一個指向一個鏈表第一個成員或最后一個成員的指針。