C 中的靜態成員變數和靜態成員函式

2021-09-11 02:02:57 字數 624 閱讀 6549

靜態成員:所謂靜態成員就是被static修飾的成員變數\函式

可以通過物件(物件.靜態成員),物件指標(物件指標->靜態成員),類訪問(類名::靜態成員)

靜態成員變數:儲存在資料段(全域性區(全域性區也叫資料段data segment),類似於全域性變數),整個程式執行過程中只有乙份記憶體,對比全域性變數,它可以設定訪問許可權(public,protected,private),達到區域性共享的目的,必須初始化,必須在類外面初始化,初始化時不能帶static,如果類的宣告和實現分離(在實現.cpp中初始化) 即初始化靜態成員變數:int car::m_price = 0.

靜態成員函式:

不管是普通成員函式還是靜態成員函式都是儲存在**區(因為函式就是一段**), 靜態成員函式內部不能使用this指標(this指標只能用在非靜態成員函式內部),另外虛函式不能用static,因為虛函式是實現多型用的,父類指標指向子類物件,虛函式都是通過物件呼叫的.所以靜態成員函式不能是虛函式(虛函式只能是非靜態成員函式),靜態成員函式內部不能訪問非靜態成員變數\函式,只能訪問靜態成員變數\函式.非靜態成員函式內部可以訪問靜態成員變數\函式.建構函式,析構函式不能是靜態.

class car

}int main()

c 中靜態成員變數和靜態成員函式

在乙個類中,若將乙個成員變數宣告為static,這種成員成為靜態成員變數,與一般的資料成員不同,無論建立了多少個物件,都只想有乙個靜態資料的拷貝,靜態成員變數,屬於某個類,所有物件共享 靜態變數,在編譯階段就分配空間,物件還沒有建立時,就已經分配空間 靜態成員變數必須在類內中宣告,在類外定義 靜態資...

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...