原文:為什么static成員變量一定要在類外初始化?

為什么靜態成員不能在類內初始化 在C 中,類的靜態成員 static member 必須在類內聲明,在類外初始化,像下面這樣。 或者只進行定義不賦初始值,但是默認值是否是 ,可能會與具體的編譯器有關吧 為什么 因為靜態成員屬於整個類,而不屬於某個對象,如果在類內初始化,會導致每個對象都包含該靜態成員,這是矛盾的。 如果不增加int A::count 變量定義,在編譯的時候將會報出: A::coun ...

2020-06-30 18:16 0 1122 推薦指數:

查看詳情

為什么static數據成員一定要在初始化?(轉)

1.避免重復定義和初始化 <<c++ primer>>說在定義和初始化是保證static成員變量只被定義一次的好方法。 但,為什么static const int就可以在里面初始化呢? 想起C中一個函數里定義一個static變量是為了保證只初始化一次 ...

Wed Sep 18 06:55:00 CST 2013 0 10726
C++的靜態成員變量一定要初始化(分配內存)

文章轉載自https://my.oschina.net/u/1537391/blog/219432 https://blog.csdn.net/vict_wang/article/details/80994894 我們知道C++的靜態成員變量是需要初始化的,但為什么要初始化呢。其實這句 ...

Thu Apr 30 16:26:00 CST 2020 0 1478
關於static成員變量初始化的實驗

根據C++ Primer中所敘述,static成員必須在進行初始化,而不能在構造函數內進行初始化,於是進行如下實驗: 1 令aa行enable,令bb行disable,鏈接提示: 1>test.obj : error LNK2001: 無法解析的外部符號 ...

Thu Nov 22 05:34:00 CST 2012 1 3147
C++中靜態成員變量要在外部再定義或初始化的原因

C++中靜態成員變量要在外部再定義或初始化,否則會產生錯誤。 class A { public: static int a; }; int A::a=0;   為什么要在的外部進行定義的原因: 1. 在中,只是聲明了靜態變量,並沒有定義。 2. 聲明只是表明了變量 ...

Tue Sep 25 00:04:00 CST 2018 0 3338
C++中靜態成員變量要在外部再定義或初始化的原因

我們知道C++的靜態成員變量是需要初始化的,但為什么要初始化呢。其實這句話“靜態成員變量是需要初始化的”是有一定問題的,應該說“靜態成員變量需要定義”才是准確的,而不是初始化。兩者的區別在於:初始化是賦一個初始值,而定義是分配內存。靜態成員變量中僅僅是聲明,沒有定義,所以要在的外面定義 ...

Sat May 09 04:33:00 CST 2020 0 1797
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM