枚举类与枚举类或类相似?

时间:2013-02-06 15:54:20

标签: c++ class enums enum-class

类型enum class是否与传统类完全分开,或者它的实现类似? enum class如何运作?我问的原因是因为我不明白它是如何同时与类和枚举相似的。我假设一个枚举类不能有构造函数或内部方法吗?

1 个答案:

答案 0 :(得分:3)

它与普通的enum有关,它由一组常量值的名称组成。它与class有关,因为名称全部包含在 类型名称的范围内。所以:

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