Константы с манифестом для этого непригодны
Константы с манифестом для этого непригодны
Первым примером служит класс, описывающий комплексное число:
class COMPLEX creation
make_cartesian, make_polar
feature
x, y: REAL
-- Действительная и мнимая часть
make_cartesian (a, b: REAL) is
-- Установить действительную часть a, мнимую - b.
do
x := a; y := b
end
... Прочие методы (помимо x и y, других атрибутов нет) ...
end
Пусть мы хотим определить константу - комплексное число i, действительная часть которого равна 0, а мнимая 1. Первое, что приходит в голову, - это буквальная константа вида
i: COMPLEX is "Выражение, определяющее комплексное число (0, 1)"
Как записать выражение после is? Для пользовательских типов данных никакой формы записи неименованных констант не существует.
Можно представить себе вариант нотации на основе атрибутов класса:
i: COMPLEX is COMPLEX (0, 1)
Но этот подход, хотя и реализован в некоторых ОО-языках, противоречит принципу модульности - основе объектной методологии. Приняв этот подход, мы согласились бы с тем, что клиенты COMPLEX должны описывать константы в терминах реализации класса, а это нарушает принцип Скрытия информации.
Кроме того, как гарантировать соответствие неименованной константы инварианту класса, если таковой имеется?
Последнее замечание позволяет найти правильное решение. Мы уже говорили о том, что в момент рождения объекта ответственность за соблюдение инварианта возлагается на процедуру создания. Создание объекта иным путем (помимо безопасного клонирования clone) ведет к ситуациям ошибки. Поэтому мы должны найти путь, основанный на обычном методе создания объектов класса.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
А как насчет заказчиков и руководителей, которые не понимают этого?
А как насчет заказчиков и руководителей, которые не понимают этого? Еще один вопрос, который мне часто задают о CSS3, – как я использую новые свойства, работая с заказчиками. Как объяснять им преимущества использования CSS3 по сравнению с другими решениями? Обучать своих
(3.18) Как задать пpиоpитет пpоцесса еще пpи его запyске? Чтоб не лазить постоянно для этого в task manager?
(3.18) Как задать пpиоpитет пpоцесса еще пpи его запyске? Чтоб не лазить постоянно для этого в task manager? Запуская с помощью консольной команды start можно запускать приложение с нужным приоритетом, указывать время, через которое приложение должно быть закрыто, и некоторые другие
3.8. Как задать пpиоpитет процесса еще пpи его запyске, чтоб не лазить постоянно для этого в task manager?
3.8. Как задать пpиоpитет процесса еще пpи его запyске, чтоб не лазить постоянно для этого в task manager? Запуская с помощью консольной команды start можно запускать приложение с нужным приоритетом, указывать время, через которое приложение должно быть закрыто, и некоторые другие
Где можно взять и как установить этого великолепного Роджера
Где можно взять и как установить этого великолепного Роджера Есть в Интернете весьма интересный сайт, где рекламируются всевозможные игровые программы, как говорится, на любой вкус и цвет. Сайт этот расположен по адресу http://rogerwilco.gamespy.com, существует он довольно долго, и за
46. При наличии пользовательского new следует предоставлять все стандартные типы этого оператора
46. При наличии пользовательского new следует предоставлять все стандартные типы этого оператора РезюмеЕсли класс определяет любую перегрузку оператора new, он должен перегрузить все три стандартных типа этого оператора — обычный new, размещающий и не генерирующий
Константы
Константы Константа — это число, символ или строка символов. Константы используются в программе для задания постоянных величин. В языке Си различают четыре типа констант: целые, с плавающей точкой, символьные константы и символьные
Константы
Константы Операнду-константе соответствует значение и тип представляющей его константы. Типы констант подробно описаны в разделе 1.2. Символьная константа имеет тип int. Целая константа имеет один из следующих типов: int, long, unsigned int или unsigned long, в зависимости от размера
Термины, которые вам потребуются при изучении этого раздела
Термины, которые вам потребуются при изучении этого раздела Вирус – программа, которая способна размножаться, прикрепляя себя к безобидным программам или документам. Вирус может повредить или полностью уничтожить все файлы и данные, а также повредить или даже
Константы
Константы В Си++ существует удобное средство определения констант. Если в Си вы должны были пользоваться директивой препроцессора #define, то теперь введено новое ключевое слово const, позволяющее создавать константы. Преимущество в использовании ключевого слова const перед
Анатолий Вассерман: После этого не значит вследствие этого Анатолий Вассерман
Анатолий Вассерман: После этого не значит вследствие этого Анатолий Вассерман Опубликовано 19 мая 2010 года Выпуск 215 Анатолий Вассерман вновь возвращается к теме сталинской эпохи и репрессий. На этот раз он опровергает мнение о том, что
Так почему гас олимпийский факел и можно ли было этого избежать? [дополнено] Евгений Золотов
Так почему гас олимпийский факел и можно ли было этого избежать? [дополнено] Евгений Золотов Опубликовано 09 октября 2013 В науке производства есть замечательная находка под названием poka-yoke. В переводе с японского — а если верить легенде, концепцию
Беда книгопродавца: о том, как старинная фирма Barnes & Noble вошла в мир ИТ и что из этого вышло Михаил Ваннах
Беда книгопродавца: о том, как старинная фирма Barnes & Noble вошла в мир ИТ и что из этого вышло Михаил Ваннах Опубликовано 01 июля 2013 Бизнес книжной торговли — один из самых респектабельных в мире. И тем, что ему сопутствует благородная цель
Программу для Google Glass сможет сделать каждый. Вот что для этого нужно Андрей Письменный
Программу для Google Glass сможет сделать каждый. Вот что для этого нужно Андрей Письменный Опубликовано 10 апреля 2013 На фестивале SXSW, прошедшем в марте 2013 года в США, инженер Google Тимоти Джордан рассказал, как работают Google Glass и как разрабатывать
Портреты из будущего: как быстро накинуть десяток лет и почему компьютер этого не умеет Евгений Золотов
Портреты из будущего: как быстро накинуть десяток лет и почему компьютер этого не умеет Евгений Золотов Опубликовано 31 июля 2013 Молодого человека, который смотрит на вас с фотографии ниже, не существует в действительности. Или, правильней сказать,
Как мы дошли до этого
Как мы дошли до этого Если вы хотите обвинить кого-то в компьютеризации Америки, предъявите свои претензии Джорджу Вашингтону и другим авторам конституции. В 1787 году Вашингтон с единомышленниками объявил, что новая республика должна проводить перепись населения каждые