1、问题描述

在走读QtCreator中看到一段代码
在QtCreator-v4.9.2源码中 src\plugins\projectexplorer\projectnodes.h

enum class NodeType : quint16 {File = 1,Folder,VirtualFolder,Project
};

以前一直使用enum,这里使用的是enum class,新enum的好处:

限制了作用域,避免名字冲突;如例子中,必须使用如 NodeType::File 的形式
可以指定底层的数据类型来存储enum,如例子中使用的 quint16
2、enum class 、enum struct、enum详解

enum class 、enum struct是C++11标准——强枚举类,为了解决enum存在的问题

旧enum存在的问题:
向整形的隐式转换;
不能指定底层所使用的数据类型;
旧enum的作用域是全局的,容易产生命名冲突;
不同编译器解决该问题的方法不统一。
强枚举类说明:
enum class 和 enum struct 是等价的;
与整形之间不会发生隐式类型转换,但是可以强转;
强化了作用域的概念,在使用枚举类中的类型时必须添加枚举类名;
可以指定底层数据类型。
3、参考博客:

https://www.jianshu.com/p/707f2b34f574
https://blog.csdn.net/sanoseiichirou/article/details/50180533
https://blog.csdn.net/kid1ing/article/details/74785999

【C++】C++11的enum class enum struct和enum相关推荐

  1. Swift语言中class、struct、enum的联系与区别

    相同点 三者都可以拥有属性和方法(enum本身不能储存属性,但是可以储存在其关联信息中,可以有计算属性) 都可以拥有函数 class和struct可以拥有自己的构造器 不同点 类可以继承 类可以内省和 ...

  2. java中 enum什么意思_Java中“enum”的用途是什么?

    本问题已经有最佳答案,请猛点这里访问. 所以我研究了这个"枚举"类型,在我看来它有点像一个美化的数组/ArrayList/List.它的具体用途是什么? 你觉得它是以什么样的方式排 ...

  3. c枚举类型enum例题_c枚举类型enum用法 枚举类型enum用法 怎么去取所有

    JUDGE(S W ) 指 W 属于 S 枚举类型还是自定义函数里的2个变量不要太久太久不联系我,我怕我一不小心把你忘了. (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素 ...

  4. android enum 内存,Android 中的 Enum 到底占多少内存?该如何用?

    听说过一些论调,Enum 不该用啊,占用了很大的 dex 文件,占用很多内存.而到底确切占用了多少内存,没说.本文分析了枚举所占用的精确的内存大小,方便大家权衡选择,希望对大家有帮助. 关于 Enum ...

  5. C语言中struct, union, enum 三大复合数据类型

    2019独角兽企业重金招聘Python工程师标准>>> struct结构体 struct声明一个结构体,它将一些相关联的数据打包成一个整体. 首先看结构体占用内存空间的大小. str ...

  6. struct 和enum的用法

    typedef enum{   k1,k2,k3,k4  }PieceT;  PieceT aa=k3;  //这就是枚举类型的用法  cout<<aa<<endl;    / ...

  7. python中枚举类型enum用法_Python枚举类型Enum用法详解

    实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义.比如:定义不同的月份 JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12 复制代码 大多数人想到 ...

  8. 学习笔记---取得枚举项的2种方法: Enum.GetValues()-Array.GetValue()和Enum.GetNames()-Enum.Parse()...

    代码 namespace EnumDemo { public enum Color { red = 0, orange =1, yellow =2, green=4, blue =5, cyan =6 ...

  9. java+enum+devicetype_JSF web编程:通过enum数组生成

    1.HTML代码 最终实现的效果代码,如下所示: selected="selected" value="Monitor">Monitor value=&q ...

最新文章

  1. 欧拉回路与欧拉路(模板)
  2. kali使用openvas
  3. 重装IDEA再也不愁了,一招搞定同步个人配置!
  4. SQL查询语句精华文章(转)
  5. C++ 类成员引用变量的使用
  6. 工作114:传参控制
  7. 4 QM配置-质量计划配置-编辑缺陷类型的代码组和代码
  8. 在visualc++可以运行的程序在linux下怎么不能,Linux环境下C++只允许单个程序运行...
  9. 楼对面的男士夏天就光膀子,请问大家,男士真的都爱光膀子吗?
  10. sql语句返回近似值
  11. 移动端手势库设计与实践
  12. 统计信号处理知识点总结_统计信号处理-简单看看克拉美罗界
  13. 小程序cms系统服务器选择,如何三分钟为小程序打造管理后台
  14. java 进度条时间设置_java进度条时间显示怎么实现?
  15. 年会 炫酷 抽奖小程序
  16. windows虚拟化服务器搭建,windows虚拟化服务器搭建
  17. GPT分区是什么?如何创建GPT分区
  18. numpy 索引和切片
  19. .NET iTextSharp PDF添加文字水印
  20. S3C2440的中断体系结构

热门文章

  1. mysql 集群实践_MySQL Cluster集群探索与实践
  2. OpenCV中 Mat 按行或按列合并程序
  3. python归一化代码_python中的快速图像归一化
  4. Python修改Mitsuba的XML相关参数
  5. coreseek最大检索数只有1000的问题!
  6. Unity创建在线多人游戏视频教程
  7. linux内存管理 之 内存节点和内存分区(Zone)
  8. 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
  9. Cmake 交叉编译
  10. Scrapy和MongoDB的应用