![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
![]()
Типа такого.
![]() Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
К примеру, чтобы при записи данных в файл другая программа могла прочитать данные благодаря только коду программы, а не настройкам компилятора.
Ещё к примеру, чтобы было определено значение DAY(0). |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
the_deer_one
зачем значения енумов мапятся на числа А на что они должны маппится, на строки? o_O Впрочем, ты всегда можешь использовать strong typed enum оно поддерживается в VS2012 (и вроде бы в 2010 тоже)
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#4 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
так, это, если правильно понимаю, то enum - это именованые константы, которые мапятся на значения целочисленного типа, по определению.
вот такое Код:
Код:
|
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Это следует из определения:
Цитата:
Более подробно в "Типы в языках программирования". PS: Интересный случай представляют перечисления всего с одним полем. В книге сплошная математика! |
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
![]()
Kostia
Цитата:
http://msdn.microsoft.com/en-us/libr...platetype.aspx |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
А Ваша ссылка здесь вообще ни к чему. enum это общий механизм. То что в ссылке это конкретное значение какого-то левого enuma от Мелкософта. Или мы должны это были на расстоянии в тысячи километров ментально (а может и ректально) определить?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Правильный ответ: так исторически сложилось.
В 10 случаях из 100 это удобно. В 2 случаях из этих 10 это оправдано. Остальное время это не нужно или используется зря. Исторически сложилось еще с тех времен, когда модно было согласовывать язык с простотой реализации. В плюсах, например, до сих пор добавляют синтаксический сахар с оглядкой на простоту реализации компилятора с поддержкой этой фичи. int - это самый логичный тип, на котором можно было бы завязать перечисления. "автоматом" получаем и поддержку всяких switch и запись в файл и сравнение, т.е. наличие этого типа с такой реализацией достаточно "дешево" для создателей компиляторов. Так же можно писать крутые программы, в которых потом ничего не понятно, т.к. всё завязано непонятно на чём. Глубокого смысла показывать программисту, что enum завязан на int и давать ему возможность менять нумерацию, нет. Иногда правильно это использовать при работе с внешними данными. Ну, вот принято, что 404 - это ошибка о том, что страницы нет и ведь круто использовать такую возможность для "бесплатного" проецирования кода ошибки на более понятное имя. Эдакое избавление от "магических" чисел. Хорошо, когда эти коды не меняются и очень плохо, когда это не так или же меняется концепция продукта. Сегодня всё завязано на HTTP и кодах ошибки только этого протокола, а завтра нужно добавить еще и FTP и куча кода идёт на свалку. Итог: это своеобразный синтаксический "сахар", который достаточно редко может быть действительно нужен, но который не приносит трудностей разработчикам компиляторов и потому пусть будет. Использовать эту возможность внутри своих проектов - моветон, а вот для работы с "чужими" данными - очень даже полезная штука при условии относительного постоянства этих данных. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Если говорить в терминах c++, то перечисления в нем, вовсе не перечисления, а только упрощенное подобие. К примеру отсутствие возможности задать любой тип для перечисления сводит на нет фишку с перечислением состоящим из одного элемента.
Впрочем эта фишка бы не понадобилась, если typedef работал как скажем в D. Иначе слишком многословно приходится обходить элементарные вещи. Последний раз редактировалось Kostia; 03.12.2012 в 15:27. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ну в С++ до С++11 оно в принципе криво было.
как в посту №4. с появлением enum class оно стало более менее работать. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод значения числа в десятичной системе счисления | Kaizzer | Помощь студентам | 0 | 23.04.2011 14:44 |
Изменение значения числа при увеличении разрядности | PARTOS | Microsoft Office Excel | 5 | 25.02.2011 20:56 |
Даны действительные числа а0 ,..., а6 . Получить для х=1,3,4 значения p(x+1)-p(x), где | LiptonICE | Помощь студентам | 6 | 29.05.2010 23:27 |
Pascal нахождение точного значения числа | Зорянка | Помощь студентам | 6 | 01.07.2009 13:47 |
SOS, исчезли формулы,остались лишь значения (числа) | lyolya | Microsoft Office Excel | 2 | 30.07.2008 14:41 |