为什么人们在C++中使用枚举作为常量而不是使用const?

35

为什么人们在C++中使用枚举作为常量,而不是使用const


我知道这是一个非常老的帖子,但你能给个例子吗?当我读到这个问题时,我想到的是从函数返回int类型的代码,但使用枚举来定义返回值的特定“版本”,例如错误条件、超时条件等。下面的一些答案似乎完全没有涉及到这个问题。在我看来,除非像人们所说的那样,你的编译器在静态常量方面的功能受到限制,否则以这种方式使用枚举是错误的。 - cosimo193
可能是Should I use #define, enum or const?的重复问题。 - phuclv
12个回答

0

使用枚举可以简洁地记录有效的选择,并允许编译器强制执行它们。

如果他们正在使用枚举存储全局常量,例如 Pi,那么我不知道他们的目标是什么。


1
枚举类型是一种整数类型,我不相信它可以存储像 Pi 这样的常量而不会有显着的精度损失 :) - ASk
他们可能会存储314159,每次只需除以10^5 :P 希望这个例子能够正确地说明我所说的全局常量的含义。 - dss539

-1
一个原因是const需要更多的打字:
enum { Val1, Val2, Val3 };

...对比...

const int Val1=0, Val2=1, Val3=2;

2
这不是唯一的原因。此外,打字也没有太大的区别。 - Loai Abdelhalim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接