2013-05-07 31 views
-4
class Test { 
public: 
    int xyz=10; 
}; 

爲什麼C++編譯失敗?爲什麼C++中的代碼示例(in-class initial)的編譯失敗?

+2

在構造函數中初始化它 – Freak 2013-05-07 03:50:15

+2

未來,如果某些東西無法編譯,你可能還想包含編譯器給你的錯誤。 – Kitsune 2013-05-07 03:51:14

+0

除了Kitsune的建議,除非你使用了編譯器給你的錯誤信息,否則別問我們什麼。錯誤消息通常在文檔中進一步解釋。如果你剛剛複製/粘貼到谷歌我相信你會遇到答案比問這個問題要快得多。避免產生反作用,避免因無謂的冗餘而使互聯網癱瘓,並將我們全部從關節炎中拯救出來。這與您作爲軟件開發人員的角色類似,對嗎? – Sebivor 2013-05-07 03:56:56

回答

1

它不是一個靜態成員,以便初始化它在constructor.Non靜態成員不能初始化沒有構造
see this有關靜態和非staic數據

+0

這不再是真的,C++ 11允許在類定義中初始化非靜態數據成員。 – Praetorian 2013-05-07 04:02:31

+0

是真的,但這隻顯示錯誤,如果有人不使用C++ 11.So在這裏,如果他得到的錯誤,這意味着他沒有使用C++ 11 – Despicable 2013-05-07 04:05:17

+0

引用OP,代碼*編譯失敗在c + + *。我們都不知道爲什麼它編譯失敗:)。但是你可能正確的是,OP使用的是不支持該功能的編譯器。 – Praetorian 2013-05-07 04:09:10

2

這是一個在C +新功能的初始化進一步的細節+11。編譯你的代碼-std=c++11