首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值设置为相同命名空间但不同类中的枚举?C++

将值设置为相同命名空间但不同类中的枚举?C++
EN

Stack Overflow用户
提问于 2011-04-14 14:37:09
回答 2查看 280关注 0票数 0

由于问题下面的注释,编辑,我意识到您还必须在头文件中声明一个枚举。>.<为什么在互联网上什么都不提这个?现在编译器正在识别地质学家。

我的枚举位于namespace Star中的一个名为GameModeState的类中,但我需要在一个名为ZoneMovementState的类中检查当前枚举值,该类也在使用namespace Star。我把GameModeState包括在ZoneMovementState的顶部。GameModeState中的枚举声明如下:

代码语言:javascript
复制
enum Job {Landman = 0, Geologist = 1};

我试图在ZoneMovementState中使用这段代码:

代码语言:javascript
复制
int placeholderJob = Star::GameModeState::Geologist;
//or I've tried this
int placeholderJob = GameModeState::Geologist;

由于某些原因,我的编译器在这两种尝试中都没有识别地质学家;我如何将placeholderJob设置为地质学家?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-14 14:49:14

它不承认地质学家在你的计划范围内吗?(当您鼠标移动时,intellisense会弹出并向您显示地质学家是一个等于1的枚举类型吗?)或者它下面是否有一个符号(表示它不识别该类型?)

这可能是一个范围问题(尽管根据您的信息,它听起来不像它),或者您正在使用的编译器不允许将枚举的值设置为没有显式转换的整数。

票数 0
EN

Stack Overflow用户

发布于 2011-04-14 14:50:21

为什么在互联网上什么都不提这个?

互联网不需要提及这一点,因为它摸索着编译单元。

头文件可以告诉编译器(基本上)存在哪些名称(标识符)以及它们代表什么。这就是为什么编译器告诉你,当他不知道地质学家代表什么。

函数、字段、类、结构、类型、命名空间也是如此,所以问题是

为什么一个编译器会神奇地知道另一个编译单元中的枚举,而其他的一切都必须为他解释?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5664883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档