1 c++
我在两个不同的文件中使用相同的命名空间.在那些文件中,我有2枚枚举.我需要在这些枚举中使用相同的标识符.有办法吗?
在第一个文件first.h
...
namespace foo
{
enum direction
{
NONE,
RIGHT
...
}
}
In second file
second.h
...
namespace foo
{
enum reverse
{
NONE,
LEFT,
...
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例代码.我需要重用"NONE".我需要visual studio 2008的代码.(不能使用:枚举类)
如果你可以使用C++ 11,实现你想要的最好的方法是使用"强类型枚举",使用enum class关键字声明,即
enum class direction
{
NONE,
LEFT
};
enum class reverse
{
NONE,
RIGHT
};
Run Code Online (Sandbox Code Playgroud)
在其余的代码中,您可以将枚举数称为ns::direction::NONE和ns::reverse::NONE(如果您熟悉该语言,则在C#中).
如果您没有可用的C++ 11,那么您可以通过在内部命名空间中声明匿名枚举来模拟相同的事情,例如
namespace direction {
enum {
NONE,
LEFT
};
}
namespace reverse {
enum {
NONE,
RIGHT
};
}
Run Code Online (Sandbox Code Playgroud)
再次,你然后引用direction::NONE和reverse::NONE,所以没有冲突.