C static靜態成員

2022-01-09 21:46:02 字數 919 閱讀 9637

class a

~a()

void fun(); // 普通成員函式

static void printnum() // 靜態成員函式

private:

int m_a; // 普通成員變數

int m_b; // 普通成員變數

static int num; // 靜態成員變數

};// 靜態成員必須在定義類的檔案中對靜態成員變數進行初始化,否則會編譯出錯。

int a::num = 0;

int main()

輸出結果

2

4

這裡需要注意的是sizeof運算子不會計算靜態成員變數的大小,如下栗子:

class ctest

;

sizeof(ctest)等於4

1) 類名::成員名

a::printnum();
2) 物件名.成員名
a a;

a.printnum();

3) 指標->成員名
a *p = new a();

p->printnum();

4) 引用.成員名
a a;

C static 靜態成員

靜態成員包括靜態資料成員和靜態成員函式,提供了同類物件間資料成員的共享機制 靜態成員不是某個物件的成員,是類所有物件的共享成員,只建立乙個成員副本 定義格式 static 型別 成員名 引用格式 類名 靜態成員 初始化格式 型別 類名 靜態資料成員 初始化值 靜態資料成員為同類所有物件所共享,不能使...

C static靜態成員函式

在類中,static 除了可以宣告靜態成員變數,還可以宣告靜態成員函式。普通成員函式可以訪問所有成員 包括成員變數和成員函式 靜態成員函式只能訪問靜態成員。編譯器在編譯乙個普通成員函式時,會隱式地增加乙個形參 this,並把當前物件的位址賦值給 this,所以普通成員函式只能在建立物件後通過物件來呼...

C static靜態成員變數

有時候我們希望在多個物件之間共享資料,物件 a 改變了某資料後物件 b 可以檢測到。共享資料的典型使用場景是計數 以 student 類為例,如果我們想知道班級中共有多少名學生,就可以設定乙份共享的變數,每次建立物件時讓該變數加 1 在c 中,我們可以使用靜態成員變數來實現多個物件共享資料的目標。靜...