c++中enum 如何使用(转)

ENUM概况

enum枚举类型是C/C++中的一种数据类型,与struct和class一样是用户自定义的类型,其特点在于enum类型的变量取值是有限的,是可以一一列举出来的。

ENUM定义

C++ enum枚举格式:

enum < 枚举类型名> {< 枚举表>};

enum {< 枚举表>}< 变量名表>;

第一个C++ enum枚举值对应着一个整型数,通常情况下如果其中的枚举常量没有定义数值,那么第一个枚举值对应着常量值0,然后依次递增,如果第一个枚举常量定义了数值,那么其后的值将随之递增,其中每个常量之间用“,”隔开,而不是“;”,最后一个数值不用符号。

enum bool {false,true};  bool类型就是C++预定义的枚举

ENUM举例

  1. #include < iostream.h>
  2. void main()
  3. ...{
  4. //例1
  5. enum day...{Sun,Mon,Tue,Wed,Thu,Fri,Sat};//定义一个day的枚举
  6. day d = Sun; 
    //d只能等于"Sun,Mon,Tue,Wed,Thu,Fri,Sat"中的一个,没有其它值!
  7. cout< < "value is "< < d< < endl;
  8. //也可以定义多个变量
  9. enum day...{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
  10. day d1,d2,d3;
  11. d1 = Thu; d2 = Sat; d3 = Tue;
  12. cout< < "d1 && d2 && d3 "< < d1< < " "< < d2< < " "< < d3< < endl;
  13. //例2
  14. enum ...{Sun,Mon,Tue,Wed,Thu,Fri,Sat} d;
  15. d = Mon;
  16. cout< < "value is "< < d< < endl;
  17. //例3
  18. enum ...{Sun=10,Mon,Tue,Wed,Thu,Fri,Sat} d1,d2,d3,d4;
  19. d1 = Sun; d2 = Mon; d3 = Tue; d4 = Wed;
  20. cout< < d1< < " "< < d2< < " "< < d3< < " "< < d4< < endl
    //输出 10 11 12 13
  21. //例4
  22. enum ...{Sun=10,Mon=1,Tue,Wed,Thu,Fri,Sat} d1,d2,d3,d4;
  23. d1 = Sun; d2 = Mon; d3 = Tue; d4 = Wed;
  24. cout< < d1< < " "< < d2< < " "< < d3< < " "< < d4< < endl
    //输出 10 1 2 3
  25. }
时间: 2024-11-05 00:59:50

c++中enum 如何使用(转)的相关文章

Java中enum的学习总结

一.通常的定义常量的方法 public class Sex{ public final static int MALE = 1; public final static int FEMALE=2; } 使用的时候,你能够在程序中直接引用这些常量.可是.这样的方式还是存在着一些问题. 类型不安全 因为颜色常量的相应值是整数形.所以程序运行过程中非常有可能给颜色变量传入一个随意的整数值.导致出现错误. 没有命名空间 因为颜色常量仅仅是类的属性,当你使用的时候不得不通过类来訪问. 一致性差 由于整形枚

C#中 enum 和 常量 的可靠编程

查看微软的C#参考中enum介绍的时候,冒出来下面一段: 可靠编程 与任何常量一样,对枚举中各个值的所有引用在编译时均将转换为数值文本. 这可形成潜在的版本控制问题,如常量(C# 编程指南)中所述. 给新版本的枚举赋其他值,或者更改新版本中枚举成员的值,可导致相关源代码出现问题. 通常在 switch 语句中使用枚举值. 如果 enum 类型中添加了其他元素,则 switch 语句的默认节可能被意外选定. 如果其他开发人员使用您的代码,则需要提供相关说明,告诉开发人员如果任何 enum 类型中添

Java中Enum枚举的使用

注意项: 1.在switch中使用枚举能使代码的可读性更强. 2.如果要自定义方法,那么必须在enum实例序列的最后添加分号.而且Java要求必须先定义enum实例. 3.所有的枚举都继承自java.lang.Enum类,由于Java不支持多继承,所以枚举对象不能再继承其他类. 4.如果想让枚举对应值,那么要写构造方法,也可以再覆盖toString()方法

Swift中enum, struct, class的有关使用方法

import Foundation print("Hello, World!") let a = 10var b = 20var c = a + b;c = 3000 //重载:函数名相同, 函数类型不同(参数, 返回值不同), 构成重载, 调用的时候, 根据参数确定调用那个函数func helloworld(a:Int)->Int {    return a * 100}func hellowold(a:String)->Int {    return 100}print

C#中enum类型

最近碰到了枚举类型,就顺便整理下. 枚举的基类Enum,可以是除 Char 外的任何整型.不做显示声明的话,默认是整形(Int32). 声明一个Enum类型: /// <summary> /// 颜色 /// </summary> public enum People { [Description("婴儿")] Baby = 0, [Description("儿童")] Children = 5, [Description("青年&

MySQL中 enum 插入的时候注意事项

今天在执行开发发过来的工单的时候,source批量导入执行时候发现报了很多警告 提示 truncate for column xxxxx .导入完成后,使用select查询后,发现大量数据未成功插入. 后来发现是enum字段没有加引号搞的鬼. 结论:    enum的字段,在插入的时候,必须带上引号.否则会出现不可预期的问题. 验证过程如下: [none] > use test; [test] > create table t1( a int primary key auto_incremen

MYSQL中 ENUM 类型的详细解释

ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果将一个无效值插入一个 ENUM (即,一个不在允许值列表中的字符串),空字符串将作为一个特殊的错误值被插入.事实上,这个字符串有别于一个"普通的"空字符串,因为这个字符串有个数字索引值为 0.稍后有更详细描述. 如果一个 ENUM 被声明为 NULL,NULL 也是该列的一个合法值,并且该列的缺省值也将

C#中Enum用法小结

enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储. (1)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下两个代码定义是等价的: [csharp] view plaincopy enum TrafficLight { Green, Yellow, Red } [csharp] view plaincopy enum TrafficLight { Green = 0, Yellow = 1, Red = 

项目中Enum枚举的使用

在.NET中,枚举一般有两种常见用法,一是表示唯一的元素序列,比如表示订单状态(未提交,待处理,处理中...).另外一种是表示多种组合的状态,比如表示权限,因为可同时有多个不同权限. 基本用法 这里拿项止中订单的订单状态来举例. 1,使用枚举表示订单的订单状态,并保存到数据库 public void SaveOrder() { using (var db = new HotelDBEntities()) { var order = new EFHotelOrder { OrderID = 100