3 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
class foo{ private: static int i;};
int foo::i = 0;
注:int
, bool
, char
class foo{ private: static int const i = 42;};

TA貢獻1946條經(jīng)驗 獲得超4個贊
class foo{private: static int i;};
int foo::i = 0;
foo::i
extern int i
int i
class foo{private: static int i; const static int a = 42;};

TA貢獻1847條經(jīng)驗 獲得超11個贊
頭文件用于聲明。
頭文件每編譯一次.cpp
直接或間接地#includes
它們和任何函數(shù)之外的代碼都在程序初始化時運行,在此之前。main()
.
提出:foo::i = VALUE;
進入頭部,foo:i
將被分配值VALUE
(不管是什么).cpp
文件,這些賦值將以不確定的順序(由鏈接器確定)在此之前發(fā)生。main()
都跑了。
如果我們#define VALUE
成為我們中的一個不同的數(shù)字.cpp
檔案?它會編譯得很好,在我們運行程序之前,我們將無法知道哪一個贏了。
不要將已執(zhí)行的代碼放入頭中,原因與您從未執(zhí)行過的原因相同。#include
?a?.cpp
檔案。
包括護衛(wèi)(我同意你應(yīng)該經(jīng)常使用),保護你不受不同的東西影響:相同的標題是間接的。
- 3 回答
- 0 關(guān)注
- 1191 瀏覽
添加回答
舉報