Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712

Проверка значения перечисления

27.08.2017, 16:14. Показов 5321. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех. Есть перечисления, которые являются параметрами функций. Надо отметить то, что значения в членах перечислений могут идти не по порядку. В функциях необходимо проверять, является ли значение в параметре членом перечисления. Как это сделать или же существует другое решение данной проблемы (без использования перечислений)?
C++
1
2
3
4
5
6
7
8
enum TEnum1 { one = 1, two, ten = 10 };
enum TEnum2 { zero, one, two };
enum TEnum3 { six = 6, seven, nine = 9, hundred = 100 };
 
Fun(TEnum1 Enum1, TEnum2 Enum2, TEnum3 Enum3)
{
 /* как проверить, что значения Enum1, Enum2, Enum3 входят в соответствующие перечисления? */
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2017, 16:14
Ответы с готовыми решениями:

Возврат из функции значения перечисления
Приветствую всех. Есть класс: class TAccess { public: enum TAccessType { User, Admin }; TAccessType GetUser(); }; ...

Что быстрее, проверка на null, или проверка на тип перечисления в запросе?
вопрос такой. если несколько таблиц. сходных по структуре в запросе. в первой таблице типТовара = перечисление.тратата.набор во...

Выбор значения перечисления по умолчанию
Здравствуйте. Подскажите пожалуйста, я создал в конфигурации.Перечисления СтавкиНДС, создал два значения НДС18 и НДС10. Как при запуске...

23
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.08.2017, 11:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от d7d1cd Посмотреть сообщение
После слов о выстрелах в ногу возникают вопросы. Зачем прятать переменные и функции в закрытые секции классов? Зачем объявлять функцию или параметр функции константными? Ведь здесь так же действует правило "не стреляй себе в ногу": параметр функции не должен меняться, не меняй его.
Затем что это предохранители от случайного выстрела. При этом все эти предохранители можно обойтить при большом желании, потому что они предохранители а не запретители. Т.е. считается что если человек обходит предохранитель или вообще его не включает, то он знает что он делает и ответственность за последствия на нем. К примеру разница между a[i] и *(a+i) только в том что в первом случае корректность вычисления адреса элемента зона ответственности компилятора, во втором зона ответственности программиста.
В общем "человек думает машина работает в действии". Задача человека указать где какие предохранители включить или не включить. Задача машины (компилятора)- тупо не дать случайно выстрелить там где предохранители включены.
Следствие - если предохранители постоянно обходятся искуственно, то кого-то из двух программистов (того который делал либу и того кто ее пользует) скорее всего стоит уволить.
1
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
28.08.2017, 18:12  [ТС]
Avazart, Fulcrum_013, спасибо за терпеливое объяснение! Измучился с вопросом о проверке значения перечисления, придумывал способы и прочее, а оказывается не надо ничего этого.

Добавлено через 6 часов 15 минут
Avazart, подскажите, откуда в выражении assert(TEnum1Contain(Enum1)); берется функция TEnum1Contain(Enum1)?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.08.2017, 18:28
Цитата Сообщение от d7d1cd Посмотреть сообщение
Avazart, подскажите, откуда в выражении assert(TEnum1Contain(Enum1)); берется функция TEnum1Contain(Enum1)?
Пишется руками...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21286 / 8311 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
28.08.2017, 20:19
Цитата Сообщение от d7d1cd Посмотреть сообщение
Зачем прятать переменные и функции в закрытые секции классов? Зачем объявлять функцию или параметр функции константными? Ведь здесь так же действует правило "не стреляй себе в ногу": параметр функции не должен меняться, не меняй его
Полезные свойства в язык добавляются ради того, чтобы облегчить жизнь тем, у кого руки и голова растут из правильного места, а вовсе не ради того, чтобы не дать застрелиться идиоту
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2017, 20:19

Возможные значения экземпляра перечисления
Цитата: "Перечисление (enumeration) — это определяемый пользователем целочисленный тип. Когда вы объявляете перечисление, то...

Перенос значения перечисления из ТиС в УТ
Всем привет. Через конфу Конвертация 2.8 хочу перенести данные из справочника Номенклатура ТиС для Украины 7.7.0.1 в УТ для Украины 3.1. В...

Получение значения выбранного перечисления на форме
8.3. УФ. Вечер добрый. Пишу небольшую обработку. Застопорился на одном вопросе. (Надеюсь поможете). Как получить результат ВЫБРАННОГО...

enum и Random(Вывод произвольного значения из перечисления)
Здравствуйте! Возник такой вопрос: есть перечисление, скажем enum Names ...

Вывод значения перечисления enum в консоль в форматированном виде
Как реализовать корректный вывод? Есть namespace Library { public enum Weather { Satisfactory, //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru