C++ enum类与enum或类有何相似之处?
类型C++ enum类与enum或类有何相似之处?,c++,class,enums,enum-class,C++,Class,Enums,Enum Class,类型enum类是完全独立于传统类的,还是其实现类似?enum类如何工作?我问这个问题的原因是因为我不明白它如何可以同时与类和枚举相似。我假设枚举类不能有构造函数或内部方法?它与普通的枚举相关,因为它由一组常量值的名称组成。它与类相关,因为名称都包含在类型名称的范围内。因此: enum my_enum { first, second, third }; my_enum value = second; // OK; enumeration names are in glob
enum类
是完全独立于传统类的,还是其实现类似?enum类如何工作?我问这个问题的原因是因为我不明白它如何可以同时与类和枚举相似。我假设枚举类不能有构造函数或内部方法?它与普通的枚举相关,因为它由一组常量值的名称组成。它与类
相关,因为名称都包含在类型名称的范围内。因此:
enum my_enum {
first,
second,
third
};
my_enum value = second; // OK; enumeration names are in global scope here
enum class my_class_enum {
fourth,
fifth,
sixth
};
my_class_enum other_value = fourth; // Error
my_class_enum another_value = my_class_enum::fourth; // OK
它与类无关。不要被糟糕的名字选择所愚弄。它只是一个更安全的枚举。enum类
只是一个枚举,一点也不像类。作为起点,我很难击败它。是我通过快速网络搜索找到的enum类
的建议草案之一。它并没有说太多关于名称选择的内容,但却谈到了人们通过将传统的enum
s包装在类中来解决一些问题的方法。其中有一些短语,如与类类似,新的枚举类型引入了自己的作用域
,这暴露了它背后的一些思想。