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 )

しかし、2番目の選択肢はあまり明確ではありません

4

4 に答える 4

2

大文字または別のアンダースコアが続くアンダースコアのみが実装用に予約されているため_1_2などを自由に使用できます。

于 2013-09-26T12:31:24.847 に答える
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 に答える