Программирование >>  Программирование на языке c++ 

1 ... 10 11 12 [ 13 ] 14 15 16 ... 159


Другая часть описания класса, которую не видно через прямоугольные окна, является одинаковой для всех классов заданного семейства.

Фактически шаблон - это класс с параметрами, или па-раметризированный класс. Такими параметрами могут быть: типы (ни одного, один или несколько), передаваемые в класс, которые могут быть как стандартными, так и новыми (определенными пользователем);

параметры (ни одного, один или несколько), передаваемые в класс, во многом имеющие сходство с параметрами функций;

типы и параметры, передаваемые в класс. Параметризированные классы подробно рассмотрены в гл. 6.

При написании программ очень важным является выявление и устранение ошибок. Для этих целей в объектно-ориентированных программах используется специальный метод, называемый обработкой исключений (exception handling), частным случаем которого является обработка ошибок (error handling). Основная идея этого метода поясняется на рис. 1.10. Объектно-ориентированную программу можно рассматривать как совокупность объектов, взаимодействующих через сообщения. Типами объектов являются библиотечные и определенные пользователем классы. Каждый класс имеет внешнее представление, или интерфейс (interface), и внутреннее представление, или реализацию (implementation). Когда объекту посылается сообщение, начинается обработка этого сообщения внутри объекта, причем обычно невозможно увидеть, что делается внутри (доступ внутрь закрыт). Допустим, что сообщение, передаваемое в объект, является ошибочным, например, мы обращаемся к элементу внутреннего массива с недопустимо большим значением индекса. Возникают вопросы: кто может обнаружить и кто может исправить ошибку? Очевидно, что проверить индекс и определить ошибку в общем случае можно только там, где соответствующий массив построен, т. е. в классе. Однако исправить ошибку может только функция, посылающая сообщение объекту класса. Эти соображения и легли в основу метода обработки исключений, в соответствии с которым выполняются определенные действия (рис. 1.10).



1) Пусть функция F посылает сообщение объекту О.

2) Если объект О обнаруживает в сообщении ошибку, неоднозначность или то, что невозможно выполнить, он прерывает свои функции и генерирует исключение.

3) Функция F представляется в виде двух частей: собственно функции и обработчика исключения. Следствием генерации исключения в объекте является активизация обработчика исключения.

4) Обработчик исключения делает вывод о возможности продолжения программы (изменяет ошибочное сообщение) или о необходимости ее завершения по ошибке.

Такой метод имеет ряд преимуществ:

-ф- поиск ошибок осуществляется внутри класса, а их обработка - за пределами класса. Это поддерживает независимость интерфейса и реализации;

осуществляется явное разделение (а не смешивание) кода собственно функции и кода для обработки ошибок.

Функция F

тело функции F

обработчик исключения


Объект О

(Г) Передача сообщения

принятие решения об исключении

интерфейс

возможная .генерация

обработка сообщения

исключения

Корректировка и повторение сообщения

Заверщение программы

Рис. !. 10. Пояснение метода обработки исключений



Подробное описание метода выявления и обработки исключений рассмотрены в гл. 7.

В работе [9] приведены этапы проектирования объектно-ориентированной программы, исполъзующей все рассмотренные в этом параграфе базовые конструкции. Каждый этап сопровождается примерами фрагментов программ.



1 ... 10 11 12 [ 13 ] 14 15 16 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика