gpt4 book ai didi

c++ - 无法解析嵌套枚举

转载 作者:太空狗 更新时间:2023-10-29 23:37:15 26 4
gpt4 key购买 nike

我想做类似下面的事情:

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 等等。

仅当从类外部访问枚举器时才需要这样做。在类的范围内,您可以简单地使用基本名称。

关于c++ - 无法解析嵌套枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com