First of all——如何正确理解enum类型?

enum Color { red, white, blue};
Color x; 

我们应说x是Color类型的,而不应将x理解成enumeration类型,更不应将其理解成int类型。

我们再看enumeration类型:

enum Color { red, white, blue};  

理解此类型的最好的方法是将这个类型的值看成是red, white和blue,而不是简单将看成int值。
C++编译器提供了Color到int类型的转换,上面的red, white和blue的值即为0,1,2,但是,你不应简单将blue看成是2。blue是Color类型的,可以自动转换成2,但对于C++编译器来说,并不存在 int 到 Color 的自动转换!(C编译则提供了这个转换)

// Color会自动转换成intenum Color { red, white, blue };  void f1()
{  int n;  n = red;    // change n to 0  n = white;  // change n to 1  n = blue;   // change n to 2
}   void f2()
{  Color x = red;  Color y = white;  Color z = blue;  int n;  n = x;   // change n to 0  n = y;   // change n to 1  n = z;   // change n to 2
} 

但是,C++编译器并不提供从int转换成Color的自动转换:

void f()
{  Color x;  x = blue;  // change x to blue  x = 2;     // compile-time error: can't convert int to Color
}   

若你真的要从int转换成Color,应提供强制类型转换:

void f()
{  Color x;  x = red;      // change x to red  x = Color(1); // change x to white  x = Color(2); // change x to blue  x = 2;        // compile-time error: can't convert int to Color
}   

但你应保证从int转换来的Color类型有意义。

C/C++ - enum 与 int 相互转换相关推荐

  1. php ip to int_ip地址和int相互转换

    ip地址和int相互转换 无 function ip_to_int($ip,$reverse=false){ if($reverse){ $ipVal = (int)$ip; $ipArr[0] = ...

  2. enum与int、String之间的转换

    enum与int.String之间的转换 enum<->int enum -> int: int i = enumType.value.ordinal(); int -> en ...

  3. Java中char和int相互转换

    char转int的方法 方法一(直接转) 使用Character.getNumericValue(char)方法 public static void main(String[] args) {cha ...

  4. 用枚举enum替代int常量

    枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...

  5. (转载)C#:Enum、Int和String的互相转换,枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...

  6. Effective Java之用enum代替int常量(三十)

    1.Int枚举常量 public class mytest {public static final int num_one = 1;public static final int num_two = ...

  7. Effective Java~34. 用enum 代替 int 常量

    在将枚举类型添加到该语言之前,表示枚举类型的常见模式是声明一组名为 int 的常量,每个类型的成员都有一个常量: // The int enum pattern - severely deficien ...

  8. Enum,Int,String的互相转换 枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...

  9. 枚举——用enum代替int常量

    枚举类型(enum type) 是指一组固定的常量组成合法值的类型,例如一年中的季节.太阳系中的行星或者一副牌中的花色. int枚举模式的缺点 在我们平常的开发中,为表示同种类型的不同种类,经常的做法 ...

  10. golang float string int 相互转换 保留小数位

    目录 string 转换为 float int 转化为 float 转换为 string,并保留3位小数 无论是 32位系统还是 64 位系统,都支持 float64 string 转换为 float ...

最新文章

  1. javascript正则表达式验证密码(必须含数字字符特殊符号,长度4-16位之间)
  2. 01.计算机体系结构概述.md
  3. 推荐5个免费项目管理工具
  4. Linux部署动态网页,linux构建动态WEB服务器安装篇
  5. 机器学习回归算法—性能评估欠拟合与过拟合
  6. 2017,人工智能技术如何让中国开发者“倾心”又“上火”!
  7. Python三目运算符
  8. 阿里晓斌:如何做好技术 Team Leader?
  9. 2022国内低代码平台厂商排行榜—经典收藏
  10. 西门子宣布美国充电桩扩产计划
  11. android sdk 最新国内镜像下载,【Android SDK Manager】SDk国内镜像下载地址
  12. 信息系统项目10大管理-4W1H
  13. php入侵代码,入侵PHP网站就这么简单.pdf
  14. 个人空间岁末大回报活动12月30日获奖名单
  15. iOS中app在iTunes中更新版本流程
  16. SAR/GMTI-概述及常用抑制杂波方法DPCA
  17. python3ide安卓版官网下载_Pydroid3官方版-Pydroid3最新版下载v4.01 - 7230手游网
  18. 软件工程(三)——敏捷开发和理解需求
  19. Circular reasoning
  20. 星起航:抖音小店线上货源渠道

热门文章

  1. python token_bytes_Python secrets.token_bytes方法代码示例
  2. 选择器的权重中对交集选择器,分组(并集)选择器,以及关系选择器的理解
  3. MySQL面试核心25问(附答案),心有猛虎,细嗅蔷薇
  4. iOS 视频字幕srt文件解析
  5. 阿里巴巴校招实习 java 研发 123面
  6. 计算机无法关机 总是自动启动不了怎么办,电脑不能关机,小编教你电脑关机后总是重启怎么办...
  7. 【Day6.2】现金所剩无几,机智想办法去机场
  8. Java动态代理为什么要求必须实现顶级接口
  9. java老九_【老九】【Java】小议转义字符
  10. html录音并调用讯飞语音接口,微信小程序前台调用讯飞语音识别接口