最近我一直在做很多C#编程,现在回到C++,我缺少一些语言功能,尽管我想知道是否可以做类似的事情。

在C#中,使用枚举的名称作为前缀来访问枚举的元素,例如…

enum TypeA { one, two, three };
TypeA varA = TypeA.one;

在C++中,情况并非如此,如果枚举元素具有相同的名称,则可以通过其名称直接访问元素,而无需使用前缀,这也会导致重复问题。

但是,我想知道,是否有某种方法或技巧可以在C++中做同样的事情,使代码看起来像这样……
typedef enum { one, two, three } TypeA;
TypeA varA = TypeA.one;

能够真正创建枚举,使我能够重复使用名称,然后使用相应的前缀进行访问,这对我来说真的很有帮助。

想法,有人吗?

最佳答案

对于那些有兴趣的人,这是解决方案。

enum class TypeA { one, two, three };
TypeA varA = TypeA::one;

关于c++ - 使用标识符前缀访问枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49092672/

10-10 12:44