2015-10-05 3 views
0

Может кто-нибудь объяснить разницу междуразницы между перечислением и классом перечислений

enum 
{Type1,type2} 

И

enum class 
{Type1, type2} 

я использую бывшие часто (вероятно, слишком часто без герметизирующих достаточно), но я никогда не использовал второй пример.

Благодаря

перечисление

+0

HTTP : //en.cppreference.com/w/cpp/language/enum – AndyG

ответ

1

enum просто разливает его содержимое в области видимости, и в основном константной статическое число. Это означает, что первый элемент любого перечислимого значения по умолчанию тот же, что и оператор ==.

Классы enum имеют свой собственный объем и не загрязняют пространство имён, в котором они находятся. Они также удостоверяются, что первый элемент в любых классах перечисления не равен.

Предпочитает перечисления классов из-за свои привилегии, если у вас есть компилятор, который поддерживает их (любой крупный компилятор теперь)

Я бы вы хотите узнать больше идет сюда:

http://en.cppreference.com/w/cpp/language/enum