C++ 枚举定义
2024-09-26 11:36:46
我们在平常的编程中,时常需要为一些属性定义一组可以选择的值,比如文件打开的状态可能会有三种:输入 输出和追加
我们一般情况下记录这些状态是让每一个状态和一个常数相对应 比如
const int input=;
const int output=;
const int append=;
这个方法虽然也是可以得,不过它有一个明显的缺点就是 没有指出这些值是相关联的
而C++中的 枚举 提供了一种替代的方法 不但可以定义常数集 还可以将其聚集成组 如下:
enum Cities //enum是关键字 Cities为枚举类型名()
{
zhanjiang, //
Maoming, //0+1
Yangjiang, //1+1
Jiangmen, //2+1
};
在enum中,第一个枚举成员是0 后面每一个枚举成员的值等于前者加1
枚举的赋值
有时候,枚举的情况可能不能很好的符合枚举的默认情况 比如
我们可能希望枚举的值从n开始 不要成0开始
又可能 我们枚举的成员值 俩个不同的成员对应的常数需要是一样的 (比如 在Cities中 前面俩个城市在实际需要中要当成一个 我们就可以把它们对应的常数定义成相同的数)
enum Cities
{
zhanjiang=, //
Maoming, //
Yangjiang, //
Jiangmen, //
beijin=, //
tianjin,//
shanghai,//
Zhongshan = 1000, //
changsha,//
};
这时候,我们就可以根据实际的情况对于enum 进行一定的改变 因为enum中的值有一个性质:
如果有初始值 那么这个成员的值就是 初始值
如果没有 那么它就等于前面成员值加1
有一点需要注意:不能改变枚举成员的值 枚举成员本身就是一个常量表达式
其次我们在定义enum时 都定义了一个新的类型 如我们代码 新类型为Cities
和其他类型一样 可以初始化和定义Cities类型的对象
但是只能通过其枚举成员或者同一枚举类型的对象来进行初始化与赋值
int k=;
double x=10.2;
Cities oneCity = Cities(); //将50通过显式转换,为oneCity赋值
Cities sanjian = shanghai;//通过相同类型来进行初始化
tianjin = ; // 错误 enum定义的是常量 不能修改值
Zhongshan=k; //不同类型 不能修改常量的值
Zhongshan =x; //不同类型 不能修改常量的值
最新文章
- eclipse报错“Undefined variable from import: ...”解决方案
- python爬虫感想
- Qt中让Qwidget置顶的方法
- DIY一个前端模板引擎.(一)
- phpcms 02
- CSS display和visibility的用法和区别
- JDBC访问及操作SQLite数据库
- 函数嵌套定义,闭包及闭包的应用场景,装饰器,global.nonlocal关键字
- [Windows] [DLL] [动态链接库技术]
- [Node.js] 05 - Modules and Function
- 异常上报工具:腾讯Bugly
- Zookeeper与Paxos
- Lambda表达式常用代码示例
- JavaScript 各种验证收集
- 第二百五十节,Bootstrap项目实战--响应式导航
- 制作Windows10政府版的小白教程
- 初探STL之算法
- iOS 项目代码组织
- sdk manager 创建的虚拟机启动的时候总是在Android字样解决
- jsp学习笔记 - 内置对象 application
热门文章
- 开始编写Makefile(三)Makefile的默认模式规则
- BZOJ 1073: [SCOI2007]kshort
- Tyvj P2044 [";扫地";杯III day2]旅游景点
- 数组思维 -- join的一些用法感悟
- OpenFOAM当中监测力和阻力系数
- redis 业务锁 not exist 模式
- Docker部署OpenProject
- python 连接ORacle11g
- 怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解
- crontab 使用日期时间命名重定向文件