一、关键点
0. 枚举类型&&枚举成员&&枚举值
enum color {red, blue, yellow}; //red = 0, blue = 1, yellow = 2
- 枚举类型:enum类型,如color就是一个枚举类型,我们可以定义color类型的对象(color flower = red;)
- 枚举成员:red、blue、yellow都是枚举成员,它们是整型const的,即它们本身就是常量表达式,而初始化它们也需要用常量表达式
- 枚举值:枚举成员的值,如果未显式提供,则默认枚举值从0开始,依次加1
1. 两种枚举:不限定作用域的枚举、限定作用域的枚举
enum color {red, blue, yellow}; //不限定作用域的枚举 enum class color1 {red, blue, yellow}; //限定作用域的枚举
2. 初始化enum对象(或为enum对象赋值):必须使用该enum类型的另一个对象或者它的一个枚举成员
3. 自动转换类型:不限定作用域的枚举类型的对象或枚举成员可以转换成整型
4. 指定enum成员类型:限定作用域的enum成员类型默认是int
enum color : unsigned long long {red, blue, yellow}; //每个enum成员的类型都是unsigned long long的
二、补充
enum color {red = 22, blue, yellow = 32}; //blue = 23