C 靜態成員初始化

2021-07-15 01:10:20 字數 393 閱讀 6610

在c++ 類中,靜態成員一般不允許在類宣告中進行初始化,應該在類的外部進行初始化,例如:

class

a;static

int a::a=0; //初始化方式

void main(void)

但是有乙個例外,可以為靜態成員提供const 整數型別的類內初始值。要求靜態成員必須是字面值常量型別的constexpr ,因為靜態成員本身就是常量表示式,所以賦的初始值必須是常值。如果在類的內部提供了乙個初始值,那麼就不能在他定義的時候再賦乙個初始值。注意:即便提供了類內初始值,還是需要在外部進行定義的。例如:

class a;

constexpr

int a::a;

靜態成員常量初始化

靜態常量的問題 樓主waxic waxic 2006 03 06 11 05 24 在c c c 語言 提問在 類定義中定 義乙個靜態常量 在友員函式中不能 訪問 標頭檔案 class string 類描述檔案中 void function1 string st 這樣對嗎?我在 vc中編譯不能通過問...

C 靜態成員變數的初始化

需要注意的是 靜態資料成員不能在類中初始化,一般在類外和main 函式之前初始化,預設時初始化為0。1.static成員的所有者是類本身,但是多個物件擁有一樣的靜態成員。從而在定義物件是不能通過建構函式對其進行初始化。2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。3.靜態成...

成員初始化列表以及靜態私有變數初始化

在乙個類中,我們往往可能會定義乙個靜態變數,但在宣告乙個類的時候不會進行記憶體的申請,只有在進行物件定義的時候才會進行記憶體申請,但問題來了,在程式進行到建構函式的時候,要對靜態變數進行初始化,但因為是const靜態變數,不能改變其初始值,會出現錯誤。因此,必須在執行建構函式之前,在建立物件時進行初...