作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有一个现有的枚举
typedef enum
{
myEnum_front = 11,
myEnum_back = 19
} myEnumSides;
我想创建另一个枚举 new_myEnumSides
,它的值应该映射到 myEnumSides
的值。因此,我将使用 new_myEnumSides
而不是 myEnumSides
。下面的代码是否适合此目的?
typedef enum
{
new_myEnum_front = myEnumSides::myEnum_front,
new_myEnum_back = myEnumSides::myEnum_back
} new_myEnumSides;
或者有更好的方法吗?
最佳答案
我无法想象为什么你需要这样做......如果你不需要重命名枚举的值,你可以再做一个第一个的变量,不添加另一个枚举(我相信这不是你的情况,但仍然必须指出这个机会):
typedef enum
{
myEnum_front = 11,
myEnum_back = 19
} myEnumSides, new_myEnumSides;//<-- just add the new variable here
如果您确实想要重命名它(我相信,是您的情况),您应该不使用: :
运算符,但只需写:
typedef enum
{
myEnum_front = 11,
myEnum_back = 19
} myEnumSides;
typedef enum
{
new_myEnum_front = myEnum_front,
new_myEnum_back = myEnum_back
} new_myEnumSides;
仅当枚举在类、结构或命名空间内时才应使用 ::
运算符,否则不需要 ::
。
关于c++ - 将一个枚举映射到另一个枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12281368/
我是一名优秀的程序员,十分优秀!