在c++類中宣告成員時可以加上static關鍵字,這樣宣告的成員就叫做靜態成員
首先測試一下靜態成員是否占用物件記憶體的問題
#include using namespace std;
class base
; base();
~base();
};
int main ()
輸出是4
靜態成員不占用物件記憶體,所有物件共享乙個靜態成員。
base::fun1()通過編譯。可以用類名直接呼叫靜態成員,因為靜態成員編譯階段已經被分配空間,所以不需要物件也可以呼叫。
靜態成員函式不能使用非靜態成員,因為非靜態成員在物件例項化之前為分配空間,所以不能使用。
#include using namespace std;
class base
; base();
~base();
};
int main ()
能通過complied,卻不能通過build。
靜態成員必須經過初始化才能使用
C 靜態成員變數,靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
C 靜態成員 2 靜態資料成員
目錄 1.靜態成員的構造 2.靜態成員的訪問 3.靜態成員的初始化 include class a class b int main 輸出 b s constructor called 結論 程式只呼叫了b的建構函式,而沒有呼叫a的建構函式。原因很簡單,靜態成員僅僅在類宣告的時候而宣告,但是不會定義...
C 靜態成員和靜態成員函式
一 靜態資料成員 類體中的資料成員的宣告前加上static關鍵字,該資料成員就成為了該類的靜態資料成員。和其他資料成員一樣,靜態資料成員也遵守public protected private訪問規則。同時,靜態資料成員還具有以下特點 1 靜態資料成員的定義。靜態資料成員實際是類域中的全域性變數,其定...