枚举enum的用途浅例
来源:互联网 发布:2017上海网络视听季 编辑:程序博客网 时间:2024/06/06 04:26
写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即:
- const int input = 1;
- const int output = 2;
- const int append = 3;
然后,调用以下函数:
- bool open_file(string file_name, int open_mode);
比如,
- open_file("Phenix_and_the_Crane", append);
这种做法比较简单,但存在许多缺点,主要的一点就是无法限制传递给open_file函数的第2个参数的取值范围,只要传递int类型的值都是合法的。(当然,这样的情况下的应对措施就是在open_file函数内部判断第二个参数的取值,只有在1,2,3范围内才处理。)
使用枚举能在一定程度上减轻这种尴尬(注1),它不但能实现类似于之前定义三个常量的功能,还能够将这三个值组合起来成为独一无二的组。例如:
- enum open_modes {input = 1, output, append};
以上定义了open_modes为C++枚举类型enumeration type。每一个命名了的枚举都是唯一的类型,是一个类型标示器type specifier。例如,我们可以重新写一个open_file函数:
- bool open_file(string file_name, open_modes om);
在open_modes枚举中,input, output, append称为枚举子enumerator, 它们限定了open_modes定义的对象的取值范围。这个时候,调用open_file函数和之前的方法还是一模一样:
- open_file("Phenix_and_the_Crane", append);
但是,如果传递给open_file的第二个参数不是open_modes枚举类型值的话(注1),那么编译器就会识别出错误;就算该参数取值等价于input, output, append中的某个,
也一样会出错哦!例如:
- open_file("Phenix_and_the_Crane", 1);
- 枚举enum的用途浅例
- Enum枚举的用途
- enum的用途
- 枚举enum的单例模式
- 枚举 Enum 的用法
- enum 枚举的使用
- enum(枚举)的用法
- enum枚举的研究
- ios的枚举ENUM
- enum枚举的意义
- 枚举 的用法 enum
- 枚举(enum)的使用
- 【Enum】枚举的使用
- 枚举enum的用法
- 枚举enum的应用
- enum 枚举的作用
- 枚举Enum的使用
- Enum枚举的使用
- 匿名方法在委托实例化中的应用
- C# 访问MySql出现乱码问题
- ssh框架中插入数据到mysql出现乱码
- C++总是能让我想起什么(9)——C++与C#的多态
- Popup-Fenster mit JavaScript
- 枚举enum的用途浅例
- 分享一个类似于MFC的字符串类
- ASP.NET基础(2)
- 数组集合,相信总有你分不清楚的
- struts2 集成webservice 的方法
- php xdebug 调试
- 函数调用方式的区别[thiscall,__cdecl,__stdcall]
- 存储过程
- Intent的一个用处