Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ enum类与enum或类有何相似之处?_C++_Class_Enums_Enum Class - Fatal编程技术网

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包装在
类中来解决一些问题的方法。其中有一些短语,如
与类类似,新的枚举类型引入了自己的作用域
,这暴露了它背后的一些思想。