1 定義靜態類成員的原因
1.1 有時候,對某個類的所有例項化物件 ,需要訪問同乙個全域性物件;
1.2 但是使用全域性物件會破壞封裝,因此使用靜態類成員。
2 使用靜態類成員的優點:
2.1 靜態成員的可見性為類範圍,因此避免了與其他類的成員或全域性物件的名字衝突;
2.2 靜態成員可以使用private關鍵字,所以可以進行封裝;
3 靜態成員函式:
3.1 當在類定義體的外部定義靜態類成員函式時,無需指定static關鍵字,只要再類內部宣告該成員函式時使用static宣告過就行了;
3.2 靜態成員函式一般不宣告為const,因為它不與類的物件關聯;
3.3 靜態成員函式也不能宣告為虛函式。
4 靜態資料成員:
4.1 靜態資料成員不能通過類建構函式初始化,而應該在定義時初始化;
4.2 靜態資料成員必須在類定義體外定義 ;
4.3 同靜態成員函式一樣,在類外定義時也不能使用static關鍵字,該關鍵字只在類內部宣告時使用;
4.4 靜態資料成員必須在類外定義且只能定義一次 ,達到這個目的最好的辦法時在乙個包含類的非內聯成員函式定義的原始檔中定義該靜態變數;
5 特殊的常量整形靜態資料成員:
5.1 上面說到,靜態資料成員不能在類定義體內部初始化,但是有例外;
5.2 在類定義體內部用常量表示式 來初始化乙個整形的宣告為const的靜態變數是可以的,因為此時的這個語句也是乙個常量表示式;
5.3 當const static的整形資料成員在類內部初始化時,該成員仍然要在類外定義且只能定義一次,但是可以不用再指定初始化值。
6 靜態成員可以進行的而類成員非法的操作
6.1 靜態成員可以被宣告為自己所屬的類的型別,而類成員變數只能宣告為自己所屬類的指標或引用;
6.2 靜態成員可以被作為函式的預設引數。
C Primer筆記4 靜態成員類 IO庫
1.靜態成員類 static成員變數與函式 static成員變數 必須在類外初始化。const或引用型別變數必須在建構函式初始化列表裡初始化 static成員函式 不依賴於類。相當於類裡的全域性函式 能夠由該類物件呼叫,也能夠 類名 函式名 的形式呼叫 不包括this指標。不能宣告為const,宣告...
C primer 類成員指標
1 宣告成員指標 有時我們希望直接獲取成員的指標,然後從乙個物件或別的物件獲得該成員,這時就需要用到成員指標。成員指標,包含類的型別以及成員的型別。成員指標只針對類的非static成員。static類成員不是任何物件的組成部分,所以不需要特殊語法來指向static成員,static成員指標是普通指標...
類靜態成員和類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...