zhangjinxuan 发表于 2022-12-22 13:01:57

求一个枚举类型 enum 的完整用法

本帖最后由 zhangjinxuan 于 2022-12-22 13:16 编辑

如题,网上的资料有点难以理解,即使理解了,也觉得 enum 没有什么作用,是我理解不对吗{:9_241:}

就想求大佬们给出enum的完整用法,在C++中, enum除了搞什么0123456还有什么用吗?

tommyyu 发表于 2022-12-22 13:11:57

我感觉确实什么用都没有{:10_279:} 基本上用不到

zhangjinxuan 发表于 2022-12-22 13:14:21

tommyyu 发表于 2022-12-22 13:11
我感觉确实什么用都没有 基本上用不到

确实什么也没用{:10_277:}难道这个enum就是来搞什么0123456之类的{:10_277:}

tommyyu 发表于 2022-12-22 13:15:39

zhangjinxuan 发表于 2022-12-22 13:14
确实什么也没用难道这个enum就是来搞什么0123456之类的

不知道{:10_304:}我现在只能想起来之前好像学过它,但因为学完之后一次没用就忘了

zhangjinxuan 发表于 2022-12-22 13:16:58

tommyyu 发表于 2022-12-22 13:15
不知道我现在只能想起来之前好像学过它,但因为学完之后一次没用就忘了

啊这{:10_282:}

tommyyu 发表于 2022-12-22 13:19:25

zhangjinxuan 发表于 2022-12-22 13:16
啊这

Python竟然有一个同名模块,功能也一样https://blog.csdn.net/ProQianXiao/article/details/113481092{:10_257:}

zhangjinxuan 发表于 2022-12-22 13:20:45

tommyyu 发表于 2022-12-22 13:19
Python竟然有一个同名模块,功能也一样https://blog.csdn.net/ProQianXiao/article/details/113481092{:1 ...

我看看{:10_257:}

dolly_yos2 发表于 2022-12-22 17:57:36

个人理解
enum 的价值主要在给某个(主要是)整数一个名字,让这个值自己解释自己。我说令 0 表示红色, 1 表示绿色, 2 表示蓝色,不如定义一个枚举类型,让红色就是 Red ,绿色就是 Green ,蓝色就是 Blue ,既方便阅读还避免了自己排列数值可能出现的错误(不小心排了两个 1 之类)。
至于归类的效果, C 还会弱一些因为没有严格保证,和整数之间可以随意隐式转换。 C++ 的 enum class 则强化了限制,禁止不同枚举类型的枚举值之间和到整数之间的隐式转换,可以避免一些隐蔽的错误,算是一种语法盐。
C 的枚举类型还有一个小 hack ,因为枚举值是编译期常量,当不想用 define 预处理的时候可以用 enum 来指定数组长度

高山 发表于 2022-12-24 10:20:19

tommyyu 发表于 2022-12-22 13:11
我感觉确实什么用都没有 基本上用不到

{:10_270:}
页: [1]
查看完整版本: 求一个枚举类型 enum 的完整用法