如何在枚举中指定数字
How to specify a number in an enum
对不起,如果这个问题可能很愚蠢:我有一个枚举,枚举中包含的名称必须是一个数字:
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 )
但第二种选择不太清楚
只有下划线后跟大写字母或其他下划线保留用于实现,因此您可以自由使用 _1
、_2
等。
为什么首先使用枚举类?
在这种情况下,我认为一个普通的旧枚举是最清楚的:
enum JoysticButton
{
JoysticButton1,
JoysticButton2,
// ...
};
if ( k == JoysticButton1 ) ...
但是,在枚举中分隔数字的首选方法是哪种方法?
首选方法是具体,并尽可能清楚地命名枚举及其值。这完全取决于枚举代表什么。
例如,如果数字代表一个版本,那么像这样的东西(顺便说一句,EE是一个糟糕的通用名称):
enum class EE
{
v_1,
v_1_1,
v_2,
v_3,
// ...
};
默认枚举类型为 int。你可以这样做,我相信这就是你要问的。
enum class EE
{
ONE = 1,
TWO = 2,
// ...
}
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- C++两个源文件之间共享的枚举的静态实例
- 打印没有铸件的枚举可以在C++中吗?
- 枚举超过了最大数字类型的大小
- 根据#定义的数字定义不同长度的枚举
- 如何在枚举中指定数字
- 误差C++舍入数字 - 表达式必须具有整数或枚举类型
- 避免预定义的数字常量与c++中的枚举冲突
- 是否有可能在编译时计算数字的阶乘,但不使用枚举?