在c++物件導向程式設計過程當中,物件與物件之間的資料不是共享,在設計類的時候,有時候需要一些物件之間共享的資料,除了把所要共享的資料設定為全域性資料或者函式之外,還可以利用c++的靜態機制。
1、靜態資料成員
class 類名
;
靜態資料成員是所有物件共享的,其所佔的記憶體空間不會因為某個物件的產生而分配,也不會因為物件的銷毀而消失。跟類中其他的非靜態資料成員一樣,被定義為private時,不能被外界訪問。但是可以被類內任意訪問許可權的函式訪問。
關於靜態資料成員的初始化:非靜態成員可以在建構函式當中初始化,但是static不能在建構函式當中初始化,它的初始化,只能存在於全域性區域,並且要指明是什麼類的靜態成員,可以用作用域符號「::」來指明。
類名::靜態資料成員
就這麼簡單。
當宣告為public時候,可以被直接訪問,修改而不通過靜態成員函式。
2、靜態成員函式
class 類名
… };
靜態成員函式當中不能訪問任何許可權的非靜態資料成員,換句話說它只能訪問static。在類外部呼叫靜態成員函式的時候,不是簡單的
物件.靜態成員函式
這是普通成員函式的做法,
類名::靜態成員函式
C 靜態成員函式和靜態資料成員
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
C 靜態資料成員和靜態成員函式
1.如何實現屬於某個類的所有物件共享某個資料?解決的辦法 將所要共享的資料說明為全域性變數,但這將破壞資料的封裝性 較好的解決辦法是將所要共享的資料說明為類的靜態成員。2.靜態資料成員是類中所有物件共享的成員,而不是某個物件的成員,所以必須對它初始化,且對它的初始化不能在建構函式中進行 靜態資料成員...
C 靜態成員和靜態成員函式
一 靜態資料成員 類體中的資料成員的宣告前加上static關鍵字,該資料成員就成為了該類的靜態資料成員。和其他資料成員一樣,靜態資料成員也遵守public protected private訪問規則。同時,靜態資料成員還具有以下特點 1 靜態資料成員的定義。靜態資料成員實際是類域中的全域性變數,其定...