我想知道在 C++ 中使用 typedef + 常量与使用枚举列表的区别。差异对我来说似乎很重要的原因是因为我使用的枚举在中间会中断连续性,迫使“丑陋”
使用这两种方法的一副纸牌示例,您需要为卡片的价值和花色定义新类型:
enum Value{
ace = 1,
//Biggest issue is I dont want to have two = 2 etc. until 10
jester = 11,
queen = 12,
king = 13
};
在这个例子中,问题是如果我想要一个新的值是数字,假设 7 我不能这样做:
Value a_value = 7; //Won't allow int to Value
Value a_value = seven; //This extra enum seems just bad
另一种选择是:
typedef char Value
#define ace 1
#define jester 11
#define queen 12
#define king 13
这基本上是相同的结果,但使用这种方法它会让我这样做:
Value a_value = 7;
我可以将第二种方法与#define 一起使用还是这样做的错误方法?