很抱歉,如果问题可能非常愚蠢:我有一个枚举,枚举中包含的名称必须是数字:
enum class EE
{
ZERO,
ONE,
TWO,
// ...
}
enum class EE2
{
_0,
_1,
_2,
// and so on ...
};
如果我记得很清楚,名字前的底线必须保留给实施。但是哪个是在枚举中分配数字的首选方法?
让我们有一个更具体的例子: 我可以写一些例子:
enum JoysticButton
{
BUTTON_1,
BUTTON_2,
// AND SO ON
};
但要使用enum我必须写:
if ( k == JoysticButton::BUTTON_1 )
这非常冗长。或
enum JoysticButton
{
_1,
_2,
// AND SO ON
};
if ( k == JoysticButton::_1 )
但第二种选择不太清楚
答案 0 :(得分:2)
只有后跟大写字母或其他下划线的下划线保留用于实施,因此您可以自由使用_1
,_2
,等。
答案 1 :(得分:2)
为什么首先使用枚举类?
在这种情况下,我认为一个普通的枚举是最清晰的:
enum JoysticButton
{
JoysticButton1,
JoysticButton2,
// ...
};
if ( k == JoysticButton1 ) ...
答案 2 :(得分:1)
但是哪个是在枚举中分隔数字的首选方法?
首选方法是具体,并尽可能清楚地命名枚举及其值。这一切都取决于枚举所代表的含义。
例如,如果数字代表一个版本,那么像这样(btw EE是一个非常糟糕的通用名称):
enum class EE
{
v_1,
v_1_1,
v_2,
v_3,
// ...
};
答案 3 :(得分:0)
默认的枚举类型是int。你可以做到这一点,我相信这就是你所要求的。
enum class EE
{
ONE = 1,
TWO = 2,
// ...
}