2013-05-07 96 views
0

我無法將元素初始化爲我的類中的整數數組。代碼被裁剪爲簡潔:打開大括號會導致語法錯誤

class Update 
{ 
private: 
static const int MONTHS_IN_YEAR = 12; // months in a year 
static const int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
}; 

出於某種原因,在我的課這樣做會導致一個語法錯誤,但這樣做在裏面沒有問題的重要手段的結果。所以我不知道爲什麼它會給我一個錯誤。提前感謝您的幫助。

+0

你使用什麼編譯器? – 2013-05-07 03:18:26

+0

@JesseGood一秒 – user1800967 2013-05-07 03:19:43

+0

將其更改爲constexpr。 – 2013-05-07 03:19:51

回答

2

你需要constexpr對於工作:

static constexpr int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

然而,你的編譯器(視覺C++)不支持這個呢。因此,你將不得不在類之外初始化它:

const int Update::dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 
+0

添加它給了我更多的錯誤 – user1800967 2013-05-07 03:24:45

+0

@ user1800967:Visual C++不支持C++ 11類內初始化。你將不得不像在我的例子中那樣初始化類之外的靜態成員。 – 2013-05-07 03:28:12

+0

工作正常!非常感謝傑西!謝謝大家! – user1800967 2013-05-07 03:30:09