本文**一下c++中類的靜態成員,而類的靜態成員有兩種型別:
1、靜態資料成員
2、靜態成員函式
靜態成員的適用場合:適合處理屬於類中所有物件共有的資料,實現物件間的資料共享。
基本方法:在類的資料成員或成員函式前加上 static 關鍵字。
初始化格式: 資料型別名 類名::資料成員名[=初值];
class count
};//靜態屬性初始化賦值
int count::total = 5;
void main
()複製**
說明:靜態資料成員是在靜態儲存區分配空間,具有靜態生命期,即存在於程式執行期間,直到程式執行結束,與物件的生、死無關。不分公有、私有,均在類外定義。
使用: 與普通的資料成員一樣,成員函式可以在類內直接訪問靜態資料成員,即可以在建構函式、一般成員函式、析構函式、靜態成員函式中訪問靜態成員。
對於公有的靜態資料成員,還可以通過下列格式在類外呼叫: 類名::靜態資料成員(推薦使用) 或 物件.靜態資料成員(不推薦使用,這容易讓人誤以為靜態資料成員依賴於物件,其實它與具體物件無關)
對於私有的靜態資料成員,不允許在類外直接訪問,但可以利用稍後介紹的公有靜態成員函式來間接訪問。
靜態資料成員用得較多的場合: 儲存流動變化的物件的個數(在建構函式、拷貝建構函式中物件個數增加1,在析構函式中物件個數減少1)
定義:
class 類名
…};複製**
說明:
1)、靜態成員函式不需要初始化;
2)、靜態成員函式可以直接引用本類的靜態資料成員;
3)、靜態成員函式的設定主要是為了處理靜態資料成員,通常設定為公有許可權;
4)、靜態成員函式沒有this指標,不能直接訪問普通的資料成員(即非靜態資料成員),否則,將出錯;
5)、靜態成員函式可以用物件作為函式的引數,間接訪問普通的資料成員(即非靜態資料成員)。
void main
()複製**
呼叫:
對於公有的靜態成員函式,可以通過下列格式在類外呼叫:
類名::靜態成員函式([實參表]) (推薦使用)
或物件名.靜態成員函式([實參表]) (不推薦使用,這容易讓人誤以為靜態成員函式依賴於物件,其實它與具體物件無關)
物件.非靜態成員函式([實參表]) 格式在類外呼叫,若採用 類名::非靜態成員函式([實參表]) 格式呼叫,將出錯!
C 類靜態成員與類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
C 類靜態成員與類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
C 類靜態成員與類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...