您的位置:首页 > 其它

第一篇:容易遗忘的“枚举”

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++教材。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: