c++ 枚举(enum)的用法
2017-02-18 17:45
399 查看
枚举其实用得不多,最常用的在switch语句中,而 switch有一些限制,比如case后面一定是要一个整数,或是可以转换成整数的对象。但正好枚举里面的值也是整数,所以这两个东西配合起来,非常合适。如下:
首先,定义一个类:
然后,写一个类的实现:
最后写一个测试程序:
可能有人会问,为什么不直接COIN、FIRE定义成常量,然后通过函数直接传过去呢?这样做当然可以,但是使用枚举,可以提供编译时类型检查,在开发大型程序时,库文件可能相互分离,这对开发客户端的程序员来说,是很方便的,因为他不知道服务端的代码,也不知道提供了哪些类型可以选择,这时枚举的优势就体现出来了。
首先,定义一个类:
//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定义成常量,然后通过函数直接传过去呢?这样做当然可以,但是使用枚举,可以提供编译时类型检查,在开发大型程序时,库文件可能相互分离,这对开发客户端的程序员来说,是很方便的,因为他不知道服务端的代码,也不知道提供了哪些类型可以选择,这时枚举的优势就体现出来了。
相关文章推荐
- C++和Java中枚举enum的用法
- C++ enum类型的一个更好的用法
- c++中关于enum的特殊用法
- C++中enum枚举类型成员重名问题的解决方法
- c++ 枚举类型 enum
- c++ enum 用法
- C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装
- c# enum用法 枚举用法 Asp.net ENUM用法
- c# enum用法 枚举用法 Asp.net ENUM用法
- enum : C#中的枚举类型,原来有这么多用法(转)
- enum(枚举)的用法
- C++-枚举enum收藏
- enum枚举用法笔记
- C++ enum类型的一个更好的用法
- Enum枚举类型2.0与4.0用法的有用区别
- c++中关于enum的特殊用法
- 枚举类型enum的简单用法
- C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装(转)
- 【转】【C/C++】枚举enum学习小记
- enum 枚举 在 数组下标的 一个用法