C 靜態成員

2021-10-02 13:12:19 字數 1352 閱讀 6432

c++中的靜態成員包括靜態資料成員和靜態成員函式。

在乙個類中,如果在乙個資料成員前冠以關鍵字static,那麼這種資料成員就叫做靜態資料成員。與一般的資料成員不同,無論建立多少個類的物件,都只有乙份靜態資料成員的拷貝,也就是說,靜態資料成員為該類的所有物件所共享。

c++支援靜態資料成員的乙個主要原因就是可以不必使用全域性變數,因為全域性變數破壞了c++封裝的特點。靜態資料成員的主要用途就是定義類的所有物件的公有資料,如平均數、總數等。

格式如下:

static 資料型別 資料成員名稱
列如:

static int age;
這樣便定義了乙個靜態資料成員。

格式如下:

資料型別 類名::靜態資料成員名=初始值
例如:

int student :: age=10;
如果在初始化時,沒有對其賦初值,那麼編譯器就會自動為其賦初值0。例如:

int student :: age;
等價於

int student :: age=0;
注意:靜態資料成員的初始化必須在類外且在建立物件之前進行初始化。

(1)類名::靜態資料成員名

(2)物件名.靜態資料成員

(3)物件指標->靜態資料成員

在普通的函式前面冠以關鍵字static,就是靜態成員函式。靜態成員函式屬於整個類,靜態成員函式的作用就是處理靜態資料成員。

格式如下:

static 返回型別 函式名稱(參數列)

例如:static int fun1(int x,int y);

(1)類名::靜態成員函式名

(2)物件名.靜態成員函式名

(3)物件指標->靜態成員函式名

(1)靜態成員函式與非靜態成員函式的區別:非靜態成員函式有this指標,而靜態成員函式沒有this指標。

(2)靜態成員函式可以直接訪問本類中的靜態資料成員,也可以通過物件名或物件指標或物件引用來間接訪問非靜態資料成員。

(3)靜態成員函式與靜態資料成員一起使用,達到了同乙個類中不同物件之間資料共享的目的。

(4)可以在建立任何物件之前呼叫靜態成員函式或者訪問靜態資料成員。

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 靜態資料成員的定義。靜態資料成員實際是類域中的全域性變數,其定...