我真的不知道如何声明枚举,我试过这个
enum cardValue {2 = 0, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A};
和
enum cardValue {"2" = 0, "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K", "A"};
在这两种情况下,编译器都抱怨我使用的符号。我知道格式不对,但是我可以对此做些什么,以便下面的代码可以工作吗?
(此处,V可以是"K"
,"5"
或任何其他值)
struct card
{
cardValue value;
cardSuit suit;
public card(string V, string S)
{
value = SomeTransformation(V);
suit = SomeTransformation(S);
}
...
}
答案 0 :(得分:0)
枚举可以有字符,默认是int
char类型被归类为整数类型,但它在两个方面与其他整数类型不同:
•其他类型没有隐式转换为char类型。特别是,即使sbyte,byte和ushort类型具有使用char类型可完全表示的值范围,也不存在从sbyte,byte或ushort到char的隐式转换。
•char类型的常量必须写成字符文字或整数文字,并与强制转换为char类型。例如,(char)10与'\ x000A'相同。
答案 1 :(得分:0)
枚举值应来自同一类型。所以你的第二个例子几乎可行。如果使用标志,则应为所有值指定名称或索引,而不仅仅是一个:
enum cardValue { Val2 = "2", Val3 = "3", Val4 = "4", ValA = "A" };
此外,变量名,类名,枚举值等不能只包含数字。所以名字中必须有一个角色。