Возможный дубликат:
Есть ли причина использования enum для определения одной константы в коде C ++?
Я просто наткнулся на следующий фрагмент в каком-то старом коде, с нечетным использованием перечисления:
class MyClass
{
public:
enum {MAX_ITEMS=16};
int things[MAX_ITEMS];
...
} ;
Это лучше, чем #define MAX_ITEMS 16
, но отличается ли он от static const int MAX_ITEMS = 16;
?
Копаясь в тумане памяти, я помню, что некоторые компиляторы C ++ не позволяли инициализировать consts внутри класса, вместо этого требуя отдельного ...
const int MyClass::MAX_ITEMS = 16;
... в исходном файле .cpp. Это просто старое обходное решение для этого?