龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++枚举子相关类型解析

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
我们在上一篇文章中为大家详细介绍了有关 C++枚举类型 的相关介绍。相信大家应该可以充分掌握这方面的知识。在这里我们将会进一步对C++枚举子的类型及应用做一个详细介绍,以加

我们在上一篇文章中为大家详细介绍了有关C++枚举类型的相关介绍。相信大家应该可以充分掌握这方面的知识。在这里我们将会进一步对C++枚举子的类型及应用做一个详细介绍,以加深大家对这方面的认识程度。

C++枚举子的类型就是它所在的那个枚举,例如前面说到的open_modes枚举中,input,output和append等枚举子的类型都是open_modes。这种做法,其实是为了赋予用户和编译器一些有关该变量拟议中的用途的提示。

默认下,第一个C++枚举子被赋值0,接下来的枚举子取值是前面一个枚举子的取值+1,例如:

  1. enum weather {sunny, cloudy, rainy, windy}; 

其中

  1. sunny == 0,   
  2. cloudy == 1,  
  3. rainy == 2,  
  4. windy == 3; 

以上是默认情况,有时候我们希望显式地指定某个C++枚举子的值,那么会出现什么情况呢?看看:

  1. enum some_fruit {apple = 3, orange, banana = 4, bear}; 

好了,apple == 3, banana == 4; 那么orange和bear呢?记得前面说过一句,默认下”接下来的枚举子取值是前面一个枚举子的取值+1“。既然这两个枚举子没有显式赋值,那么就按照默认规则办事,所以 orange == 4, bear == 5.

从这个例子也可以看出,同一枚举中C++枚举子的取值不需要唯一。这样有什么用处呢?下面是个简单的例子:

  1. enum some_big_cities {  
  2. Guangzhou = 4,   
  3. Shenzhen = 4,   
  4. Hongkong = 4,   
  5. Shanghai = 2,   
  6. Beijing = 3,   
  7. Chongqi = 3 
  8. }; 

以上简单地按区域,将五个城市按照华南(4),华东(2), 华北(3)的几个城市分类了。

以上就是对C++枚举子的相关介绍。

精彩图集

赞助商链接