1,限定作用域enum
enum class open_mode {input,output,append}
默认类型int,不会进行隐式转换
2,不限定作用域enum
enum color{yellow,red,green} enum {yellow,red,green}
相当于 const yellow = 6;
不存在默认类型,(潜在类型)运算时提升成int
要初始化一个enum对象,必须用该enum类型的另一个对象或者它的一个枚举成员。因此,即使某个整型值恰好与枚举成员的值相等,它也不能作为函数的enum实参使用。
open_mode om = 2; 错误
可以进行强制转换 open_mode om = open_mode(2);