C 中類的靜態成員初始化

2022-08-20 17:51:14 字數 467 閱讀 8711

靜態成員的初始化:

與全域性物件一樣對於靜態資料成員在程式中也只能提供乙個定義,這意味著靜態資料成員的初始化不應該被放在標頭檔案中而應該放在含有類的非inline函式定義的檔案中。

**:能在類中初始化的成員只有一種,那就是靜態常量成員。

class

a;

結論:靜態常量資料成員可以在類內初始化(即類內宣告的同時初始化),也可以在類外,即類的實現檔案中初始化,不能在建構函式中初始化,也不能在建構函式的初始化列表中初始化;

靜態非常量資料成員只能在類外,即類的實現檔案中初始化,也不能在建構函式中初始化,不能在建構函式的初始化列表中初始化;

非靜態的常量資料成員不能在類內初始化,也不能在建構函式中初始化,而只能且必須在建構函式的初始化列表中初始化;

非靜態的非常量資料成員不能在類內初始化,可以在建構函式中初始化,也可以在建構函式的初始化列表中初始化;

C 靜態成員初始化

在c 類中,靜態成員一般不允許在類宣告中進行初始化,應該在類的外部進行初始化,例如 class a static int a a 0 初始化方式 void main void 但是有乙個例外,可以為靜態成員提供const 整數型別的類內初始值。要求靜態成員必須是字面值常量型別的constexpr 因...

C 類的靜態成員變數初始化

今天寫 時用了下c 中的靜態成員變數,發現了乙個以前不注意的現象,特此記錄下。有類如下 class audioplay audioplay audioplay audioplay audioplay audioplay audioplay get 以上 編譯通過,但是鏈結時說無法解析這個靜態變數a。...

C 靜態成員的類內初始化

一般來說,關於c 類靜態成員的初始化,並不會讓人感到難以理解,但是提到c 靜態成員的 類內初始化 那就容易迷糊了。我們來看如下 1 2 include3 include4 using namespace std 56 class example 1213 14 include example.h 1...