1. 枚举类型浅谈

假设我们要设计一个打开文件的函数, 打开文件由三种状态: input, output 和 append. 不使用枚举, 我们可能会写出如下的代码

const int input = 1;
const int output = 2;
const int append = 3;
bool open_file(string file_name, int open_mode);

这种做法有两个缺点, 就是无法限制传递给 open_file 函数的第二个参数的取值范围, 只要传递的是 int 值, 函数本身就是合法的.第二个缺点是语义性不强, 传入的 int  变量语义不够明确

使用枚举, 可以比较完美的解决上诉问题

enum open_mode {
input = 1, output, append
}; bool open_file(string file_name, open_mode om){}

2. 枚举的类型和取值

enum weather {
sunny, cloudy, rainy, windy
};

  

最新文章

  1. 移动端设置-----rem
  2. javascript平时小例子⑧(导航置顶效果)
  3. 35 个 Java 代码性能优化总结
  4. 【代码笔记】iOS-清除图片缓存UIActionSheet
  5. 第三个 android控件
  6. 开源文件比较工具:WinMerge、KDiff3、diffuse
  7. 黑马程序员——vim编辑器的使用
  8. 【JQuery学习笔记】一、基础篇
  9. PHP批量审核后台
  10. 二叉树的递归遍历 Tree UVa548
  11. Spring中bean的注入方式
  12. 关于LeetCode上链表题目的一些trick
  13. Gym - 101982B Coprime Integers (莫比乌斯反演)
  14. 【java提高】---java反射机制
  15. Pygal之世界地图绘制from pygal.i18n import COUNTRIES 报错的解决办法
  16. python3学习笔记十(循环语句)
  17. mybatis源码-Mapper解析之SQL 语句节点解析(一条语句对应一个MappedStatement)
  18. centos7.4+mysql5.6+virtualenv+python3.6+nginx+uwsgi+django生产环境搭建
  19. 1.gil全局解释器锁, 2. 死锁与递归锁 3. 信号量 4. Event事件 5. 线程queue
  20. win10锁屏界面无法更新

热门文章

  1. Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用
  2. Prototype的深度探索
  3. Android--从路径中提取文件名
  4. IE提示console未定义问题解决
  5. 在Quartus中如何使用TCL脚本文件配制管脚
  6. python 中写hive 脚本
  7. RPC服务框架dubbo(一):简介和原理解析
  8. OGG目的端的checkpoint table被drop的修复方法
  9. redis基础之安装和配置(一)
  10. # mysqlbinlog mysql-bin.000004 mysqlbinlog: unknown variable 'default-character-set=utf8'