c++ - 多个枚举中的相同名称

标签 c++

<分区>

我有几个具有相同字段名称的 enum:

enum Response
{
  Ok = 0, 
  Busy = 1
}

enum Status
{
  Ok = 0, 
  LoggedOut = 1
}

这给出了错误:

error: redeclaration of 'Ok'

如何解决这个问题?

更新

尝试使用枚举类:

enum class Response
{
  Ok = 0, 
  Busy = 1
}
Status s1 = Status::Ok ;

出现错误:

Error: 'Status' is not a class or namespace
     Status s1 = Status::Ok ;
                 ^

最佳答案

我会改用 enum class

enum class Response
{
  Ok = 0, 
  Busy = 1
};

enum class Status
{
  Ok = 0, 
  LoggedOut = 1
};

然后你可以毫无歧义地引用一个enum

Status s = Status::Ok;

关于c++ - 多个枚举中的相同名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49921578/

相关文章:

c++ - 嵌套局部类的静态方法

c++ - 检测 Eigen 对象没有 eval() 成员的编译时解决方案?

c++ - 我刚刚做了什么? C++中的内存泄漏?

c++ - 堆栈对象的动态转换失败

c++ - WxWidgets 编译帮助

c++ - 从模拟数据构建非常大的马尔可夫链的最佳/最快方法是什么?

c++ - std::shared_ptr<std::string const> 能否作为引用计数不可变字符串的有效实现?

c++ - 可以将 std::condition_variable 与 std::lock_guard 一起使用吗?

c++ - 输出换行符的最有效方法

c++ - 带有赋值重载语法的复制构造函数?