枚举(enumeration)

  C++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按严格的限制进行。使用enum的句法与使用结构相似。

enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};

  这条语句完成两项工作。

  • 让spectrum成为新类型的名称;spectrum被称为枚举,就像struct变量被称为结构一样。
  • 将red、orange、yellow等作为符号常量它们对应整数值0~7。这些常量叫作枚举量。

  在默认情况下,将整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,以此类推。可以通过显式地指定整数值来覆盖默认值。

  可以通过枚举名来声明这种类型的变量。

spectrum band;

  枚举变量的特殊属性

  在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量,如下所示:

band=blue;//有效,blue是枚举量
band=2000;//无效,2000不是枚举量

  因此,spectrum变量受到限制,只有8个可能的值。如果试图将一个非法值赋给它,则有些编译器将会出现编译器错误,而另一些则发出警告。为获得最大限度的可移植性,应将把非enum值赋给enum变量视为错误。

时间: 2024-10-30 11:27:20

枚举(enumeration)的相关文章

已经废弃的枚举Enumeration

package com.runoob.Collection; import java.util.Enumeration; import java.util.Iterator; import java.util.Vector; public class EnumerationDemo { public static void main(String[] args) { /* * Enumeration:枚举 * 具备枚举取出方式的容器只有Vector */ Vector v = new Vecto

Java中的枚举--Enumeration

之前并没有注意到枚举这个知识点,因为之前在项目中并没有使用过枚举,可能是项目并不是很复杂的原因吧,今天看张孝祥老师的讲解,觉得,这个枚举真的有很多值得学习的地方,探究一下枚举的设计原理,底层到底是怎么回事. 一.枚举的介绍 1.枚举用于表示编程语言中的一组命名常量 例如,一副牌中的四个套装可以是四个名为Club,Diamond,Heart和Spade的枚举器,属于名为Suit的枚举类型.其他示例包括天然枚举类型(例如行星,星期几,颜色,方向等). 当我们在编译时知道所有可能的值时使用枚举,例如菜

C++(浅析枚举类型-enum)

枚举类型 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合. 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内. 创建枚举,需要使用关键字 enum.枚举类型的一般形式为: enum enum-name { list of names } var-list;enum-name 是枚举类型的名称.名称列表 { list of names

Enumeration接口的用法

Enumeration接口也在java.util包中 它的功能与Iterator差不多 都是用来遍历集合中的元素  但是枚举Enumeration只提供了遍历Vector和Hashtable类型集合元素的功能  这种类型的集合对象通过调用elements()方法获取一个Enumeration对象  然后Enumeratino对象再调用以下方法来对集合中的元素进行遍历 hasMoreElements():判断Enumeration对象中是否还有数据 nextElement():获取Enumerat

对枚举类型、结构类型的一些认识

            什么是枚举        枚举(enumeration),就是一组字面(单词),每个字面对应一个字面值.            枚举有什么用处        例如,需要把一年四季在程序中表示出来,可能会用0,1,2,3,分别表示一年四季中的春.夏.秋.冬.这样不能直观的表示出是哪个季节,另外这样的代码不能成为健壮的代码.假设,我们在程序中定义了一个int类型的变量seaSon,用它来存入季节.此时,可以把超出定义四季范围内的int类型数字赋值给seaSon. int se

容器(Queue/Deque/Enumeration/Hashtable/Properties等)

一.队列(Queue/Deque) Queue:单向 队列通常FIFO(先进先出).优先级队列和堆栈队列(后进先出) add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 offer 添加一个元素并返回true 如果队列已满,则返回fal

接口和枚举

接口 Java中的 interface (接?)是?种表?抽象数据类型的好?法.接?中是?连串的?法标识,但是没有?法体 (定义).如果想要写?个类来实现接?,我们必须给类加上 implements 关键字,并且在类内部提供接?中? 法的定义.所以接?+实现类也是Java中定义抽象数据类型的?种?法. 在Java代码中,接?被?的很?泛(但也不是所有类都是接?的实现),这?列出来了?个使?接?的好处: 接?对于编译器和读者来说都是重要的?档:接?不仅会帮助编译器发现ADT实现过程中的错误,它也会

Java中Enumeration接口的用法

Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法,与Iterator差不多,用来遍历集合中的元素  但是枚举Enumeration只提供了遍历Vector和Hashtable类型集合元素的功能,这种类型的集合对象通过调用elements()方法获取一个Enumeration对象  然后Enumeratino对象再调用以下方法来对集合中的元素进行遍历. hasMoreElements():判断Enumeration对象中是否还有数据

我的学习之路_第七章_list集合,set集合

[List集合] List集合存储数据的结构 堆栈:先进后出(先存进来的元素,最后取出) 例如:子弹压进弹夹 队列:先进先出(先存进来的元素,先取出来) 例如:排队 『ArrayList』 数组:查找元素快,增删元素慢 有索引 『LinkedList』 链表:查找元素慢,增删元素快 没有索引,连接的是节点 例如:手拉手 List接口方法_带索引的 add(int index ,E e) 在指定的索引上添加元素 remover(int index) 移除并返回指定索引上的元素 set(int in

第三章-对象

JavaScript的简单数据类型包括数字.字符串.布尔值.null和underfined值.其他所有值都是对象.对象是属性的容器,其中每个属性都有名字和值.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除underfined值之外的任何值 对象字面量 Object Literals 对象字面量提供了一种非常方便地创建新对象值的方法.一个对象字面量就是包围在一堆花括号中的零个或多个“名/值”对. 1 var empty_object = {}; 2 3 var stooge = {