您的位置:首页 > 编程语言 > C语言/C++

c++ 枚举(enum)的用法

2017-02-18 17:45 399 查看
枚举其实用得不多,最常用的在switch语句中,而 switch有一些限制,比如case后面一定是要一个整数,或是可以转换成整数的对象。但正好枚举里面的值也是整数,所以这两个东西配合起来,非常合适。如下:

首先,定义一个类:

//soundPlay.h

class SoundTool{
public:
enum SoundFile{
COIN = 201,
FIRE = 202
};
static void playWav(SoundFile file);
};

然后,写一个类的实现:

//soundPlay.cpp
#include <iostream>
#include "soundPlay.h"

using std::cout;
using std::endl;

void SoundTool::playWav(SoundTool::SoundFile file){

switch(file){
case SoundTool::COIN:
cout << "COIN..." << endl;
break;
case SoundTool::FIRE:
cout << "FIRE..." << endl;
break;
default:
return;
}
}

最后写一个测试程序:

//main.cpp
#include <iostream>

#include "soundPlay.h"

int main(int argc, char** argv) {
SoundTool::playWav(SoundTool::COIN);
SoundTool::playWav(SoundTool::FIRE);

return 0;
}

可能有人会问,为什么不直接COIN、FIRE定义成常量,然后通过函数直接传过去呢?这样做当然可以,但是使用枚举,可以提供编译时类型检查,在开发大型程序时,库文件可能相互分离,这对开发客户端的程序员来说,是很方便的,因为他不知道服务端的代码,也不知道提供了哪些类型可以选择,这时枚举的优势就体现出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: