【发布时间】:2016-06-15 05:08:09
【问题描述】:
我在访问封装在命名空间中的枚举时遇到了一些问题。
我的问题是我有两个命名空间用于算法的两种不同实现。问题是每个命名空间中的模式都有两个枚举,每个都略有不同。在一个文件中,我想比较这两种实现。出现的问题是我不能在没有两者冲突的情况下使用枚举。谁能描述一下没有using namespace我会如何做这件事@
namespace implementation1{
enum modes {mode_standard, mode_special, fast_mode}
}
namespace implementation2{
enum modes {mode_default, mode_repeat, fast_mode}
}
请注意,这只是我的一个示例,它有点复杂,但它展示了我想要做什么。我想尝试以这种方式解决它,而不是重构为全局枚举或重命名模式,但如果没有其他方法,这是一个选项。
【问题讨论】:
-
你试过 namespace1::mode1 吗?它奏效了吗?如果不是,实际结果是什么?通常,您访问枚举的方式与访问任何其他名称的方式完全相同。
-
谢谢,我认为它成功了。当我尝试解决这个问题时,我误解了这个概念。感谢您的帮助(我对命名空间还是很陌生)
标签: c++ enums namespaces