一、枚举类型是什么,有什么用
枚举类型是由用户定义的,由于表示一组有意义的元素值。
例如,已知系统所用颜色有蓝色,红色,黑色,绿色这几种。所以就可以定义一个枚举类型用来表示这几种颜色,其中的各个枚举成员代表蓝色、红色、黑色、绿色。
二、如何定义枚举类型
在C++中,使用关键字enum来定义,
enum 枚举类型名{一系列枚举值};
enum colors{blue,black,red,green};
其中enum是定义枚举类型的关键字。colors是枚举类型名,blue等是枚举常量。
这时我们就定义好了一个枚举类型,并规定了该枚举类型的变量可取的值。
三、枚举成员的值
枚举成员就是定义枚举类型时枚举类型可取的值。
默认情况下,枚举类型中第一个枚举常量值为0,其后每个枚举常量依次+1。
我们也可以规定枚举成员值,这是在定义枚举类型时完成的,枚举类型定义完毕后就不能修改了。
例如
enum colors{blue=5,black=3,red,green};
这样我们就修改了枚举成员值,之后的red,green都是按blue的值依次加一。
ps.在修改枚举成员时只能使用常量表达式(在编译阶段就可以确定值)。
这样的话,blue和green的值就都为5了,这不算编译错误,但这是一个不好的行为。
因为我们使用枚举类型的目的在于让一组不同的值来表示不同的状态,如果有对象colors col3值等于blue,那他也等于green。所以在使用时并无法区分该枚举变量所代表的意义。
三、如何定义使用枚举变量
前面我们定义好了一个枚举类型colors,但是使用的时候我们不能直接使用这个枚举类型,需要使用枚举变量或者枚举成员(定义枚举类型括号中的东西)
定义枚举变量与普通类型类似
colors col1;
也可以在定义枚举类型的同时定义枚举变量,方法与定义普通类型对象相同。
枚举变量只能使用同类型的枚举成员和变量赋值,不能使用整型常量。
因为我们无法规定整型常量到枚举类型的转换规则,编译器也没有帮我们定义,所以不能这样操作。
当然我们可以使用强制转换操作符实现类型之间的转换。
四、枚举变量常用的操作符
常用的操作符有输出操作符<<,各个比较操作符,赋值操作符等。
输出操作符输出的是枚举变量代表的整型值。
比较操作符只能比较同类型的枚举变量和枚举成员值。
赋值操作符的右操作数也智能为同类型的枚举变量和枚举成员值。
五、枚举成员的作用范围
只要枚举类型的定义可见,那就可以直接使用枚举成员值。
例如我们可以在类中定义一个枚举类型,那我们就可以直接在类中使用枚举成员和枚举变量。
注意:区分好枚举类型,枚举成员,枚举变量这几个名称意义基本上使用时就不会遇到困难。