无法解析嵌套枚举
Can't Resolve Nested Enums
我希望做以下事情:
class Whatever {
public:
enum PhysicalObjectType {
STATIC_MISC_OBJECT,
DYNAMIC_MISC_OBJECT,
STATIC_MISC_OBJECT_WALKABLE,
DYNAMIC_MISC_OBJECT_WALKABLE,
STATIC_MISC_OBJECT_KILL,
DYNAMIC_MISC_OBJECT_KILL,
STATIC_MISC_OBJECT_BREAK,
DYNAMIC_MISC_OBJECT_BREAK,
BOUNDARY,
BOUNDARY_GROUND,
PERMANENT_JOINT,
MOUSE_JOINT
};
};
然后是一个方法,该方法将在类外部检索基于上述代码的类型。比如说,在另一个类中,我有一个Whatever
的实例我在myWhateverInstance
上调用getType()并进行比较以确定它的类型,如下所示:
if( myWhateverInstance.getType() == STATIC_MISC_OBJECT ) {
}else ...
然而,这不起作用。基本上,无论我如何尝试和解析它们,我都不能访问类外部枚举中的任何值。我犯了什么低级错误?(请注意,我得到的特定错误没有在作用域中声明,或者XX不是一个有效的名称空间或类,等等)。
访问作为类成员的枚举数时,必须用类名限定它们的名称。所以枚举数是Whatever::STATIC_MISC_OBJECT
等等
只有在从类外部访问枚举数时才需要这样做。在类的作用域中,您可以简单地使用基名。
枚举是类的成员,您需要用类名限定它(除非代码是同一类的方法的一部分):
if( myWhateverInstance.getType() == Whatever::STATIC_MISC_OBJECT ) {
class C
{
public:
enum E
{
EA, EB
};
};
C::E en = C::EA;
相关文章:
- 在模板类内部定义的枚举上的嵌套类的部分专用化
- 为什么 clang 不允许通过实例访问嵌套枚举类?
- 在嵌套名称说明符中使用枚举(编译器警告)
- 用于枚举绑定但未连接的套接字的 API
- 为什么可以获取此枚举成员值,而不必先深入研究嵌套枚举
- 为了简洁起见,在另一个文件中定义前向声明的嵌套结构/类/枚举
- POD 类中的嵌套枚举是否使它不是 POD
- 由于嵌套了枚举类,C++循环依赖关系
- 嵌套枚举类型的Postfix增量器重载
- 为嵌套在类中的枚举定义运算符
- 内部类访问外部类嵌套枚举
- 对嵌套枚举的c++操作
- 无法解析嵌套枚举
- 操作符++用于嵌套私有枚举-哪个编译器是正确的
- 如何将一个类的嵌套枚举用作另一个类的嵌套枚举
- 是否存在用于嵌套枚举类的接口机制
- 如何使用嵌套枚举实现代码重用
- 为什么无法推导出嵌套在模板类中的枚举的模板参数?
- 无法访问嵌套私有枚举的枚举
- 使用嵌套C++类和枚举的优点和缺点