Тип enum в C ++ - PullRequest
       37

Тип enum в C ++

1 голос
/ 15 мая 2010

Это работает:

enum TPriority 
{
    EPriorityIdle = -100,
    EPriorityLow = -20,
    EPriorityStandard = 0,
    EPriorityUserInput = 10,
    EPriorityHigh = 20
};

TPriority priority = EPriorityIdle; 

Но это не работает:

TPriority priority = -100;

Есть причина?

Ответы [ 4 ]

10 голосов
/ 15 мая 2010

Это тоже работает, но вам нужен явный тип

TPriority priority = (TPriority)-100;
4 голосов
/ 15 мая 2010

коротко говоря: это побеждает цель иметь перечисление

2 голосов
/ 15 мая 2010

Нельзя назначить int для перечисления, даже если значение соответствует одному из значений перечисления.

Однако, кастинг будет работать:

TPriority priority = static_cast<TPriority>(-100);
0 голосов
/ 15 мая 2010

Нет преобразования типа из значений типа enum в сам тип enum. Только наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...