![]() |
Непонятка при присвоении значения переменной, имеющей тип: перечисление.
Начал изучать язык C++, и дойдя до перечислений столкнулся с непонятной для себя ситуацией при присвоении значения переменной, имеющей тип: перечисление. Как я понимаю, перечисления нужны для создания новых типов переменных, для которых четко задано то множество значений, которое им можно присваивать. Ниже я приведу факты, которые не укладываются в мое представление. Например, возьмем следующий код:
Код:
enum COLOR {test_1, test_2, test_3, test_4, test_5}; test_1 - 0 test_2 - 1 test_3 - 2 test_4 - 3 test_5 - 4 Таким образом, по идее, если я создам переменную с типом COLOR: Код:
COLOR vartest; Код:
vartest = test_5; Код:
vartest = (COLOR) 4; Код:
vartest = (COLOR) 1000; |
Цитата:
|
pva
Цитата:
1) Я им пользовался в своем примере в первом посте; 2) С помощью static_cast. Например: Код:
vartest = static_cast <COLOR> (1000); Цитата:
P.S: Неужели придется писать свой код, контролирующий корректность значения int перед его преобразованием в enum? Хотелось бы этого избежать... P.S.S: По ходу изучения работы с перечислениями я столкнулся с еще одной непоняткой. Проблема в том, что компилятор не дает мне при создании нескольких разных типов-перечислений использовать в качестве одного из их возможных значений одноименную константу. Сразу скажу, что технически я понимаю почему это происходит. Мне не понятно: почему так сделали? Зачем сделали возможные значения перечислений доступными коду как обычные константы? |
Цитата:
Цитата:
Код:
enum ColumnAlign Цитата:
|
|
Меня в enum смущает только одно:
Код:
class ListView не забываем помечать решённую тему ;-) |
Время: 02:28. |
Время: 02:28.
© OSzone.net 2001-