C++ 在数组中存储来自另一个命名空间的枚举值
我想将枚举变量中的值存储在数组中的另一个命名空间中 因此,假设enum声明如下C++ 在数组中存储来自另一个命名空间的枚举值,c++,C++,我想将枚举变量中的值存储在数组中的另一个命名空间中 因此,假设enum声明如下 namespace something { enum IWANT { FOO = 0, BAR, BLARGH, MEH, SIZE }; } // namespace SOMETHING 我可以访问其他人使用的枚举 something::FOO 是否可以将我想要的某些变量存储在数组中?比如说 <varT
namespace something
{
enum IWANT
{
FOO = 0,
BAR,
BLARGH,
MEH,
SIZE
};
} // namespace SOMETHING
我可以访问其他人使用的枚举
something::FOO
是否可以将我想要的某些变量存储在数组中?比如说
<varType> onlyWhatIwant[3] = {something::FOO, something::BAR, something::SIZE}
onlyWhatIwant[3]={something::FOO,something::BAR,something::SIZE}
这样,当变量按如下方式使用时,仅当whatiwant[1]指向something::BAR时
我不知道这是否可能,但我想在寻找另一条路线之前我会问一下;它们没有关联的地址,因此您可以使用传统意义上的指向它们的指针。你想做的在某种程度上是可能的(检查我下面的完整示例);但是,数组元素不会指向其他对象。它们的值仅等于指定的常量(在我的示例中为foo::first和foo::second) 对于这样的枚举
namespace something{
enum myEnum{
Val0 = 0,
Val1 = 1,
Val2 = 2,
Val3 = 3,
//...
//Valn = n
};
}
您还可以使用类似这样的内容作为值的别名
enum onlywhatiwant{
Val1 = something::Val1,
Val3 = something::Val3
// etc
};
当然是,试试看。我真的不明白这个问题。谢谢!我发现了问题所在…我在错误的位置初始化了变量!谢谢你的例子!
enum onlywhatiwant{
Val1 = something::Val1,
Val3 = something::Val3
// etc
};