2017-05-08 41 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