二级C++精品课程2,第1张

二级C++精品课程2,第2张

我们经常需要一些整数常量来表示某一个的数据范围。比如,假设你需要表示一辆车的颜色:
const int cRED = 0;
const int cBLUE = 1;

int auto _ colour;
auto _ colour = cBLUE;
上面的程序语句用整数变量auto_colour来表示颜色,下面的语句也是合法的:
auto _ colour =-1;

显然,-1不是必需的颜色值。最好将auto _ colour的值限制在一个有限的整数范围内(即一组指定的颜色),C++中的枚举类型可以让我们做到这一点。枚举类型是用户自定义的数据类型,其一般定义形式为:
enum枚举类型名称
{
标识符[=整数常量],
标识符[=整数常量],
...
标识符[=整数常量]
“枚举类型名称”右边大括号中的内容称为枚举表,枚举表中的每一项称为枚举成员。枚举成员是常量,即枚举表是整数常量的集合。枚举成员之间用逗号分隔,方括号中的“整数常量”是枚举成员的初始值。
如果没有给枚举成员赋值初始值,也就是省略了标识符后的“= integer常量”,编译器会给每个枚举成员赋予不同的整数值,第一个成员为0,第二个成员为1,依此类推。当一个枚举类型中的成员被赋值后,下面的成员会按照依次加1的规则来确定它的值。下面是一个枚举类型定义的例子:
enumcolour {ERED,eBlue,eYellow,eGreen,
esilvergrey,eburgundy };
这样就定义了一个叫做Colour的枚举类型。编译器分别为枚举成员赋予eRED、…、eBURGUNDY值0、…、5。定义枚举类型后,可以定义枚举类型的变量,其值仅限于一个枚举成员。示例:
Colour auto _ Colour;

auto _ colour = eBURGUNDY;
颜色类型变量auto_colour只能取eRED、…、eBURGUNDY的六个值中的一个,下面的语句会有编译错误:
auto _ colour = 4;
我们还可以在定义枚举类型时为枚举成员指定初始值,例如:
enumcolour {ERED = 5,eblue,eYellow,egreen = 30,
esilvergrey = 40,eburgundy };
此时eBLUE=6,Eyellow = 7,Eburgundy=41。
复合数据类型可以通过上述基本数据类型的各种组合来获得。这些数据类型将在后面的章节中详细解释。

  如果一个变量只有几种可能的值,就可以把它定义为枚举类型。"枚举",顾名思义,就是把这种类型数据可取的值一一列举出来。
  例如,可以定义一个表示日期的枚举类型weekday:
  enum weekday{sun,mon,tru,wed,thu,fri,sat};
  这里enum是关键字,用于定义枚举数据类型,weekday是枚举类型的名字,枚举元素用标识符表示。
  接下来我们可以用weekday来定义变量,例如:
  weekday today,nextday;
  C++语言也允许在定义枚举类型的同时定义枚举变量,例如:
  enum weekday{sun,mon,tru,wed,thu,fri,sat}today,nextday;
  这样,变量today和nextday就具有weekday类型,它们的取值只能是sun,mon,…,sta,例如可有:
  today = sun;
  nextday = mon;
  if(today == sat)
  nextday = sun //如果today是sat的话,那么nextday赋值为sun
  C++编译器对枚举元素实际上是按整型常数处理。所以,就象前面所说的那样,当遇到枚举元素列表时,编译程序就把其中第一个标识符赋0值,第二、三、…个标识符依次赋1、2、…。因此,当枚举元素赋给枚举变量时,该变量实际得到一个整数值。例如:
  today = sun;
  是将0赋给today,而不是将字符串"sun"赋给today。赋值后:
  cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C++精品课程2

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情