總結 C 靜態成員變數的特性總結及測試用例

2021-07-12 04:01:23 字數 1039 閱讀 7486

靜態成員變數存放於資料段,在編譯時產生,故有以下特性:

靜態成員變數實際為類域中的全域性變數,其初始化也應與全域性變數一樣,不能再標頭檔案裡初始化,應與全域性變數初始化的方式一樣,初始化時,靜態成員變數不收訪問限定符限定

test.cpp:

class a

;int a::_num = 0;//初始化成功

靜態成員變數被類內所有成員變數共享,也被派生類所有成員變數共享   

class b :public a

;int main()

靜態成員變數具有常量性,可以成為成員類的可選引數,普通成員變數不具有常量性,所以不能作為成員函式的可選引數      

class b :public a

void fun1(int a = num)//報錯

private:

int num;

};

靜態成員變數可以宣告為所屬類型別,鋪同成員變數不可以宣告為所屬類型別,只能宣告為所屬類型別的引用與指標(節點就是這麼來的)

class b :public a

void fun1(int a = num)//報錯

private:

int num;

static b _bclass;//正確

b _b1class;//錯誤

b* _bclassptr;//正確,為一指標

b &_b2class;//錯誤,為一引用

};

由於靜態成員變數定義不在類體內,所以靜態資料成員的值在const成員函式中可以被合法的改變。

class a

;int a::_num = 0;//初始化成功

class b :public a

private:

int num;

};

本文出自 「pawnsir的it之路」 部落格,請務必保留此出處

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

靜態成員變數 含義 在類的成員變數前加上static關鍵字,就是把該變數宣告為靜態成員變數。特點 1 靜態成員變數在記憶體中只有乙份,所有的類物件全域性共用它。2 在類中對成員變數加上static關鍵字,進行變數的型別申明。在內的外部對其進行初始化。初始化方法 資料型別 類名 變數名 初始化值 3 ...

c 靜態變數,靜態成員變數,靜態成員函式

c 靜態變數的生存期和程式的執行期相同,使用關鍵字static宣告 static int i 5 靜態變數和全域性變數有點類似,儲存在記憶體靜態 全域性變數區。靜態變數不會因為函式的呼叫而產生乙個副本,也不會隨著函式返回而失效,靜態變數在函式執行期間是共享的。c 類的靜態成員是解決同乙個類的不同物件...

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

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