资源描述:
《第五讲 构造数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五讲构造数据类型电子科技大学电子科技大学20102010春季春季5.1枚举类型11..枚举类型的定义:“枚举”是指将变量所有可能的取值一一列举出来,变量的取值只限于列举出来的常量变量的取值只限于列举出来的常量。。枚举类型的声明的一般形式如下:enumenum枚举类型名枚举类型名{{枚举常量枚举常量1,1,枚举常量枚举常量2,2,…,,枚举常量枚举常量n}n};;枚举!215.1枚举类型枚举类型的定义:例1:enumweekday{SUNSUNMONTUEWEDTHUFRISATSUN,MON,TUE,WED,THU,FRI,SAT};定义了定义
2、了77个枚举常量以及枚举类型个枚举常量以及枚举类型wweekday。eekday。枚举常量枚举常量具有默认的整数与之对应:SUNSUN的值为的值为00、、MONMON的值为的值为11、、TUETUE为为22、、…、、SATSAT为为66。。例2:enumenumcity{city{Beijing,Shanghai,Tianjin=Beijing,Shanghai,Tianjin=55,Chongqing,Chongqing}};;枚举常量枚举常量BeijingBeijing的值为的值为00,,ShanghaiShanghai的值为的值为11,,T
3、ianjinTianjin的值指定为的值指定为55。。对于指定值后面的没有指定值的对于指定值后面的没有指定值的枚举常量枚举常量,,编译器会将前一个常量值加编译器会将前一个常量值加11((下一个整数下一个整数))赋赋给它,,所以所以ChongqingChongqing的值为的值为66。。3枚举类型的定义说明枚举类型的定义说明::¾枚举类型定义了以后就可以使用枚举常量枚举类型定义了以后就可以使用枚举常量、、使用用枚举使用用枚举类型来定义变量,定义枚举变量的方法与定义其它变量的方法一样。例如:enumcitycitycity11,,citycity22
4、;;citycitycity11,,citycity22;;用两种方法定义了用两种方法定义了citycity11、、citycity22两个枚举类型的变量名两个枚举类型的变量名。。42¾枚举类型变量也可以在定义枚举类型的同时定义例如:enummccity{BijiBeijing,ShShShanghiTiji=hai,Tianjin=5,Chongqing}citycity11,,citycity22;;¾在定义枚举类型的同时定义枚举类型变量可以省略枚举类型名例如:enumenum{{Beijing,Shanghai,Tianjin=Beijin
5、g,Shanghai,Tianjin=55,Chongqing,Chongqing}city1,city22;;55.1枚举类型枚举类型的使用:¾用枚举类型建立枚举变量后就可以对枚举变量赋值以及进行其它运算了,对枚举变量进行赋值,其值要求为同一枚举类型。。否则否则,,在编译时出错在编译时出错。。例如例如::weekdayweekdaydd11,d,d22,d,d33,d,d44;;dd11=SUN=SUN;;d2=6;//错误dd33=Shanghai=Shanghai;;///错误/错误其中对其中对dd22所赋之值是整数所赋之值是整数66,,不
6、是枚举常量;可以不是枚举常量;可以采用将一个整型值强制转换成同类型的枚举常量赋给枚举变量:63¾枚举常量、枚举类型的变量可进行算术运算、关系运算。对枚举类型实施算术对枚举类型实施算术、、关系运算时关系运算时,,枚举值转换成整枚举值转换成整型值参加运算型值参加运算,,结果为整型值结果为整型值。。所以所以,,如果要将结果赋给如果要将结果赋给枚举变量枚举变量,,还要将结果转换成枚举值还要将结果转换成枚举值。。例如:dd11=d=d11++22;;////是错误的是错误的,,因为结果为因为结果为intint型型。。需要将它强制转换成枚举型:dd11=(w
7、eekday)(d=(weekday)(d11++22));;75.1枚举类型枚举类型的使用:¾枚举常量枚举常量、、枚举类型变量枚举类型变量可进行各种形式的关系运算。例如:if(cityif(city11====33));;if(cityif(city22>=Beijing)>=Beijing);;if(Shanghai==if(Shanghai==11));;if(cityif(city11>SUN)>SUN);;¾枚举类型变量不能直接进行输入例如:cin>>dcin>>d11;;///错误/错误84【【例例55--11】】输入城市代号输入城市
8、代号,,输出城市名称输出城市名称。。5#include枚举类型定义6usingnamespacestd;7enume