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 中,我們可以使用靜態成員變數來實現多個物件共享資料的目標。靜...