【发布时间】:2013-01-09 15:32:48
【问题描述】:
可能重复:
Is there a reason to use enum to define a single constant in C++ code?
我刚刚在一些旧代码中遇到了以下 sn-p,奇怪地使用了枚举:-
class MyClass
{
public:
enum {MAX_ITEMS=16};
int things[MAX_ITEMS];
...
} ;
这比#define MAX_ITEMS 16 好,但和static const int MAX_ITEMS=16; 有什么不同吗?
回到记忆的迷雾中,我记得一些 C++ 编译器不允许你在类中初始化 const,而是需要一个单独的......
const int MyClass::MAX_ITEMS = 16;
... 在 .cpp 源文件中。这只是一个旧的解决方法吗?
【问题讨论】:
-
您可能记得无法初始化不是
static const整数类型的东西,这是 C++11 之前的情况。