| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++枚举enum使用详解 -> 正文阅读 |
|
[C++知识库]C++枚举enum使用详解 |
目录 一.什么是枚举enum(WHAT)枚举(enumeration)和类相似,能够定义一种新的数据类型,不同的是,枚举是将一组整形常量组织在一起,所以和类的使用方法有一些类似之处。 二.使用枚举enum的场景(WHEN and WHERE)实际中经常使用枚举来做数据的标识,可以实现对数据的分类,打个比方类似于用Ture和False区分是与非,而枚举也可以在此基础上也用整形常量的方式对数据进行更多的分类。 三.如何使用枚举enum(HOW)1)枚举的定义1.不限定作用域的枚举
2.限定作用域的枚举在enum后面加关键字class或者struct
3.二者区别? 解决枚举值重名的问题,保持代码的可读性
2)枚举的初始化1.默认情况下,枚举值从0开始,依次加1
2.手动指定枚举值a.可以全部指定
b.可以部分指定,未被初始化的枚举值的值默认将比其前面的枚举值大1
c.可以重复指定
3)指定枚举类型?C++11中,还可以指定给枚举类型赋值的整数类型,在enum的名字后面加上冒号以及指定的类型,限定作用域枚举默认为32位整形,在某些情况下,甚至没必要用到32位,为了节省开销,甚至可以用8位整形unsigned char,将类型指定成后,枚举变量变成了8位整型,减少了内存使用。不限定作用域的枚举类型,其成员不存在默认类型,只需要知道潜在类型是足够大的,肯定能容纳枚举值就行。 需要注意的是,不能指定为float或者double等类型,因为枚举量必须是一个整数,float和double都不是整数。
4)声明枚举对象a.先声明变量,再对变量赋值
b.声明变量的同时赋初值
c.定义类型的同时声明变量,然后对变量赋值
d.类型定义,变量声明,赋初值同时进行
5)枚举对象赋值问题a.不能将非枚举量赋给枚举变量,能将枚举量赋给非枚举变量,因为枚举量是符号常量,编译器会自动把枚举量转换为int类型
b.枚举变量不能进行算术运算,对于枚举,只定义了赋值运算符,没有为枚举定义算术运算,错误的算数计算会导致范围超限问题
c.赋值超限问题
6)枚举的取值范围上限:需要知道枚举量的最大值。找到大于这个最大值的、最小的2的幂,将它减去1,得到的便是取值范围的上限
下限:枚举量的最小值不小于0,则枚举下限取0;枚举量的最小值小于0,则枚举下限是 小于最小枚举量的 最大的2的幂,加上1。
四.枚举enum的应用1.常和Switch搭配使用
2.if...else搭配使用
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 5:36:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |