0

对不起,如果问题可能非常愚蠢:我有一个枚举,枚举中包含的名称必须是一个数字:

enum class EE
{
    ZERO,
    ONE,
    TWO,
    // ...
}

enum class EE2
{
    _0,
    _1,
    _2,
    // and so on ...
};

如果我没记错的话,名字前面的下划线必须保留给实施。但是,在枚举中指定数字的首选方法是什么?

让我们举一个更具体的例子:我可以写例如:

enum JoysticButton
{
    BUTTON_1,
    BUTTON_2,
    // AND SO ON
};

但是要使用枚举,我必须写:

if ( k == JoysticButton::BUTTON_1 )

这非常冗长。或者。

enum JoysticButton
{
    _1,
    _2,
    // AND SO ON
};

if ( k == JoysticButton::_1 )

但第二种选择不太清楚

4

4 回答 4

2

只有下划线后跟大写字母或另一个下划线保留用于实现,因此您可以自由使用_1,_2等。

于 2013-09-26T12:31:24.847 回答
2

为什么首先使用枚举类?

在这种情况下,我认为一个普通的旧枚举是最清晰的:

enum JoysticButton
{
    JoysticButton1,
    JoysticButton2,
    // ...
};

if ( k == JoysticButton1 ) ...
于 2013-09-26T13:28:27.927 回答
1

但是,在枚举中指定数字的首选方法是什么?

首选方法是具体的,并尽可能清楚地命名枚举及其值。这一切都取决于枚举代表什么。

例如,如果数字代表一个版本,那么就像这样(顺便说一句,EE 是一个糟糕的通用名称):

enum class EE
{
    v_1,
    v_1_1,
    v_2,
    v_3,
    // ...
};
于 2013-09-26T12:39:51.753 回答
0

默认枚举类型是 int。你可以这样做,我相信这就是你要问的。

enum class EE
{
    ONE = 1,
    TWO = 2,
    // ...
}
于 2013-09-26T12:30:11.777 回答