鉴于本人学习过c语言基础语法以及visual c++面向对象,这一系列的c++学习笔记将针对本人之前学习的漏洞,并将针对一些重难点进行深度理解。
一、枚举类型
1.枚举类型介绍
枚举类型是由用户定义的若干枚举常量的集合。
其定义格式如下:
enum 类型名 {枚举常量表};
枚举常量表:由枚举常量构成,是以标识符形式表示的整型量,表示其取值,并以逗号隔开。枚举常量只能是标识符形式,不能是整型、字符型等常量。
eg:
enum color {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color
枚举常量代表这个枚举类型常量可能取到的值,默认情况下系统会自动从0开始赋值并依次加一。可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。 各枚举常量的值可以重复。
如:
enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};
//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6。
2.枚举变量的使用
变量定义格式如下:
color_set1 color1, color2;
enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;//也可以类型与变量同时定义
枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。
枚举变量占用内存的大小与整型数相同。
枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。
注意:
- 枚举变量可以直接输出,但不能直接输入。如:cout >> color3; //非法
- 不能直接将常量赋给枚举变量。如: color1=1; //非法
- 不同类型的枚举变量之间不能相互赋值。如: color1=color3; //非法
- 枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。