enum
просто разливает его содержимое в области видимости, и в основном константной статическое число. Это означает, что первый элемент любого перечислимого значения по умолчанию тот же, что и оператор ==.
Классы enum имеют свой собственный объем и не загрязняют пространство имён, в котором они находятся. Они также удостоверяются, что первый элемент в любых классах перечисления не равен.
Предпочитает перечисления классов из-за свои привилегии, если у вас есть компилятор, который поддерживает их (любой крупный компилятор теперь)
Я бы вы хотите узнать больше идет сюда:
http://en.cppreference.com/w/cpp/language/enum
HTTP : //en.cppreference.com/w/cpp/language/enum – AndyG