Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2010, 01:00   #1
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию Интервальный тип данных

Доброго времени суток, уважаемые форумчане!) Возник такой вопрос: в Паскале(Делфи) был удобный в ряде случаев интервальный тип данных, например
Код:
type hour 0..23;
Есть ли в C++ его аналог? Искал в инете, но ничего подобного не нашел
optimator вне форума Ответить с цитированием
Старый 13.11.2010, 01:41   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

нету, но его можно сделать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 13.11.2010, 09:11   #3
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Цитата:
нету, но его можно сделать
А где-нибудь есть пример небольшой, а то до меня не доло как сделать можно?
optimator вне форума Ответить с цитированием
Старый 13.11.2010, 09:16   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

А что за интервальный тип? Вы подробнее расскажите, а вам скажут как его сделать
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 13.11.2010, 09:36   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В плюсах его легко, красиво и изящно не реализовать. Для тех кто не знаком с делфями и про такой тип не знает:
Допустим, мы делаем часы. Известно, что часов в сутках 24, минут в часе 60 и секунд в минуте 60, т.е. не бывает 25-го часа или 70-й минуты.
В делфях мы пишем:
Код:
hour = 0..23;
min = 0..59;
sec = 0..59;
По сути компилятором это сведётся к целому или короткому целому (int, short), но будет проверка вхождения записываемого значения в переменную этого типа, т.е.
hour := 50 приведёт к ошибке.
В целом нужен ли такой тип - большой вопрос. Я лично этим никогда не пользовался, ибо проверки вхождения в диапазоны и прочее - это бизнес-логика и размазывать её всюду нехорошо. Все проверки и операции над данными должны находиться в одном месте.
pu4koff вне форума Ответить с цитированием
Старый 14.11.2010, 13:18   #6
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

А если например взять массив упорядоченных элементов
Код:
int mass[n]={1,2,3,....,n};
или множество
Код:
typedef set<int> SET;
и отслеживать, входит ли элемент в данный массив/множество - это бедет ли неким аналогом интервального типа?

Последний раз редактировалось optimator; 14.11.2010 в 13:22.
optimator вне форума Ответить с цитированием
Старый 14.11.2010, 15:11   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Если попытаться присвоить число не из заданного диапазона, то всеми возможными способами (которые я вижу) ошибка будет отлавливаться только на стадии выполнении программы. А тут, как я понял, нужно что-бы генерировалась ошибка на стадии компиляции, и программа не компилировалась
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интервальный Граф Alex_sim Помощь студентам 0 30.09.2010 20:58
Тип данных Марк Охман БД в Delphi 4 27.09.2010 15:40
Тип данных _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 15 12.09.2010 14:14
Строковый тип данных. Paul Oakenfold Паскаль, Turbo Pascal, PascalABC.NET 2 11.04.2009 21:05
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55