第一篇:容易遗忘的“枚举”
2016-12-06 08:58
134 查看
前言
在C/C++代码中,经常看到枚举类型的变量。那么枚举类型有啥用?枚举类型具体又该如何使用?本文将结合具体实例为你解答。
枚举类型有啥用?
在编程中,我们经常需要为某些属性定义一组可选择的值。打个比方,我现在要编写一个文件处理程序,那么我就要先定义一个状态变量,然后用一组值来表示文件的打开,关闭等状态。我们很容易直观地想到以下两种做法:
/* * 用宏 */ #define input 0 #define output 1 /* * 用常变量 */ const input 0 const output 1
这样的做法可行,但是有缺点,那就是没有体现出同一类状态变量的描述宏/值之间的关联性。而枚举类型则很好的解决了这个问题。
枚举类型怎么用?
首先看一个枚举定义的示例:enum Fruit { apple, orange, pear, };
这个例子定义了一个名为Fruit的枚举类型,它包含三个描述值 - apple,orange,pear。其中第一个值(apple)默认等价于0,第二个(orange)1,依此类推。
这几个描述值可以像一般的常量表达式般使用,请看下面示例:
#include <iostream> using namespace std; enum Fruit { apple, orange, pear, }; int main() { cout << "apple: " << apple << endl; cout << "orange: " << orange << endl; cout << "pear: " << pear << endl; return 0; }
运行结果:
但枚举真正的用途是为一种状态变量提供一组相关联的描述值,参考以下代码:
#include <iostream> using namespace std; enum Fruit { apple, orange, pear, }; int main() { /* * 定义枚举变量jacklike和mikelike */ Fruit jacklike; Fruit mikelike; /* * 将指定状态值赋给枚举变量 */ jacklike=apple; mikelike=orange; /* * 程序根据枚举变量的状态值作出不同处理 */ if (jacklike == apple) { cout << "Jack like apple" << endl; } if (mikelike == apple) { cout << "Mike like apple." << endl; } return 0; }
小结
必须要在具体编程中多多尝试使用枚举,才能真正掌握枚举。同时一些关于枚举的语法细则我没有列出,想全面了解请查阅相关C++教材。相关文章推荐
- 容易遗忘的枚举
- C语言的容易遗忘的基础知识
- iOS开发中容易遗忘的小细节
- 运算符(仅列出比较容易遗忘的运算符)
- 容易遗忘的东西(持续添加中)
- C语言中容易被忽略的细节(第一篇)
- ISTQB AL-TM连载系列06:容易遗忘的测试结束活动
- 安卓容易遗忘的知识点
- 一个容易被人遗忘的管理技巧
- [容易] UVa OJ 725 Division 暴力枚举
- SQL PLUS容易遗忘之命令
- CSS容易被人遗忘的overflow : visible
- IOS 常见容易遗忘知识记录
- mysql数据库中经常使用,而且容易遗忘的sql语句
- Java中一些容易遗忘的语法
- 容易遗忘的一些小代码之 Cross apply and Outer apply
- python实用但容易遗忘的tips
- 容易遗忘的一些小代码之 Merge Operation and Output Clause
- 初学java线程同步容易出错的地方(我的第一篇博客)
- 容易遗忘的一些小代码之 PIVOT 和 UNPIVOT