2017-05-08 82 views
-7

下面的代碼是拋出一個錯誤如何初始化枚舉類型的公共變量類在C++編譯時

class Main_code { 
public : 

enum a_enum{ 
A,B,C,D,E 
}; 

a_enum A_id[4][2][2] = {{{A,B},{C,D}}, //Line_A 
         {{A,A},{C,B}}, 
         {{C,B},{E,D}}, 
         {{E,A},{C,A}} 
         }; 

private: 

} 

錯誤:

Line_A: error C2059: syntax error : '{' 
Line_A: error C2334: unexpected token(s) preceding '{'; skipping apparent function body 

能否請你幫

+2

[Can not repr oduce](http://ideone.com/G3UUi5)。請提供[mcve]。 –

+0

格式化的代碼 - 你現在可以看看 – Maximus

+0

作爲一個方面說明,你應該更喜歡在老派無與倫比的枚舉類的枚舉。 – 2017-05-08 10:54:26

回答

1

刪除分配牌號

class Main_code 
{ 
public : 
    enum a_enum { A,B,C,D,E }; 
    a_enum A_id[4][2][2] {{{A,B},{C,D}}, //Line_A 
          {{A,A},{C,B}}, 
          {{C,B},{E,D}}, 
          {{E,A},{C,A}} 
          }; 

private: 
    // ... 
}; 
+0

我試過了。但我現在收到以下錯誤 錯誤C2473:'A_id':看起來像一個函數定義,但沒有參數列表。 – Maximus

+0

@Maximus它可能是你的編譯器不支持大括號初始化。 –

+0

那麼這個問題的可能解決方案是什麼? – Maximus