【C++】C++11的enum class enum struct和enum
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相关推荐
- Swift语言中class、struct、enum的联系与区别
相同点 三者都可以拥有属性和方法(enum本身不能储存属性,但是可以储存在其关联信息中,可以有计算属性) 都可以拥有函数 class和struct可以拥有自己的构造器 不同点 类可以继承 类可以内省和 ...
- java中 enum什么意思_Java中“enum”的用途是什么?
本问题已经有最佳答案,请猛点这里访问. 所以我研究了这个"枚举"类型,在我看来它有点像一个美化的数组/ArrayList/List.它的具体用途是什么? 你觉得它是以什么样的方式排 ...
- c枚举类型enum例题_c枚举类型enum用法 枚举类型enum用法 怎么去取所有
JUDGE(S W ) 指 W 属于 S 枚举类型还是自定义函数里的2个变量不要太久太久不联系我,我怕我一不小心把你忘了. (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素 ...
- android enum 内存,Android 中的 Enum 到底占多少内存?该如何用?
听说过一些论调,Enum 不该用啊,占用了很大的 dex 文件,占用很多内存.而到底确切占用了多少内存,没说.本文分析了枚举所占用的精确的内存大小,方便大家权衡选择,希望对大家有帮助. 关于 Enum ...
- C语言中struct, union, enum 三大复合数据类型
2019独角兽企业重金招聘Python工程师标准>>> struct结构体 struct声明一个结构体,它将一些相关联的数据打包成一个整体. 首先看结构体占用内存空间的大小. str ...
- struct 和enum的用法
typedef enum{ k1,k2,k3,k4 }PieceT; PieceT aa=k3; //这就是枚举类型的用法 cout<<aa<<endl; / ...
- python中枚举类型enum用法_Python枚举类型Enum用法详解
实际开发中,我们离不开定义各种类型,当我们需要定义类型时,一般是通过一组整数来定义.比如:定义不同的月份 JAN 1 FEB 2 MAR 3 ... NOV 11 DEC 12 复制代码 大多数人想到 ...
- 学习笔记---取得枚举项的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 ...
- java+enum+devicetype_JSF web编程:通过enum数组生成
1.HTML代码 最终实现的效果代码,如下所示: selected="selected" value="Monitor">Monitor value=&q ...
最新文章
- 欧拉回路与欧拉路(模板)
- kali使用openvas
- 重装IDEA再也不愁了,一招搞定同步个人配置!
- SQL查询语句精华文章(转)
- C++ 类成员引用变量的使用
- 工作114:传参控制
- 4 QM配置-质量计划配置-编辑缺陷类型的代码组和代码
- 在visualc++可以运行的程序在linux下怎么不能,Linux环境下C++只允许单个程序运行...
- 楼对面的男士夏天就光膀子,请问大家,男士真的都爱光膀子吗?
- sql语句返回近似值
- 移动端手势库设计与实践
- 统计信号处理知识点总结_统计信号处理-简单看看克拉美罗界
- 小程序cms系统服务器选择,如何三分钟为小程序打造管理后台
- java 进度条时间设置_java进度条时间显示怎么实现?
- 年会 炫酷 抽奖小程序
- windows虚拟化服务器搭建,windows虚拟化服务器搭建
- GPT分区是什么?如何创建GPT分区
- numpy 索引和切片
- .NET iTextSharp PDF添加文字水印
- S3C2440的中断体系结构
热门文章
- mysql 集群实践_MySQL Cluster集群探索与实践
- OpenCV中 Mat 按行或按列合并程序
- python归一化代码_python中的快速图像归一化
- Python修改Mitsuba的XML相关参数
- coreseek最大检索数只有1000的问题!
- Unity创建在线多人游戏视频教程
- linux内存管理 之 内存节点和内存分区(Zone)
- 关于 Rocksdb 性能分析 需要知道的一些“小技巧“ -- perf_context的“内功” ,systemtap、perf、 ftrace的颜值
- Cmake 交叉编译
- Scrapy和MongoDB的应用