- •Курсовая работа
- •Часть I. Разработка гипотетической машины.
- •1.Цель работы Целью данной курсовой работы является изучение стандартных макросредств ассемблера ibm pc.
- •2.Задание
- •3.Введение
- •4.Постановка задачи
- •5.Разработка алгоритма
- •Задачи удаления лишних знаков препинания и определения длины каждого слова не являются сложными и их можно реализовать не разбивая их на подзадачи.
- •BeginProg – Инициализация программы. Здесь производится привязка сегментных регистров к соответствующим сегментам.
- •6.Алгоритм
- •7.Результаты
- •8.Листинг программы
- •Часть II. Самостоятельная работа
- •Основные понятия и определения.
- •Описание типов и экземпляров объектов
- •Скрытые поля и методы.
- •Как сказано выше приватные поля и методы должны располагатся после общедоступных. Директива public позволяет, если это удобно, расположить их наоборот.
- •Наследование и переопределение .
- •Статические и виртуальные методы.
- •Виртуальные методы и полиморфизм.
- •Совместимость объектных типов.
- •Преимущества и недостатки виртуальных методов.
- •Заключение
- •Литература
Совместимость объектных типов.
Вследствии применения при ОО – программировании по сравнению с традиционными методами, механизма наследования, правила совместимости для объектов отличаются.
Основной принцип совместимости объектных типов состоит в том, что совместимость расширяется по направлению от нижних уровней иерархии объектов к верхним (от потомков к родителям). Т.е. объекты дочерних типов могут свободно использоваться вместо родительских , но не наоборот.
Преимущества и недостатки виртуальных методов.
В общем случае рекомендуется делать методы виртуальными. Использование статических методов имеет смысл если требуется получить оптимальную скорость выполнения и использования памяти.
Иногда , при написании программы, точно не известно является метод виртуальным или нет. В этом случае лучше определить его виртуальным, особенно если есть предположение , что метод будет перекрываться кем-либо из потомков, а его код должен быть доступным в дальнейщем.
С другой стороны необходимо помнить , что если у объекта имеются любые виртуальные методы, то для этого объекта в сегменте данных будет создана ТВМ и любой экземпляр этого объекта будет с ней связан. Каждый вызов виртуального метода должен проходить через ТВМ , тогда как статические методы вызываются непосредственно. Хотя просмотр ТВМ весьма эффективен , вызов статического метода все равно более быстр. Если в объекте нет виртуальных методов, то и ТВМ отсутствует в сегменте данных, и программа будет работать быстрее.
Дополнительная скорость и эффективность использования памяти для статических методов должны уравновешиваться гибкостью, которая присуща виртуальным методам, т.к. в дальнейшем код программы можно расширить. Поэтому всегда надо учитывать возможности последующих модификаций программы.
Заключение
Рассмотрев принципы ОО – программирования, а также виртуальные и статические методы пришел к следующим выводам.
ОО – программирования является очень мощным и эффективным средством при написании сложных программ. ОО – программирование не нарушает принципов модульного программирования, и его основное предназначение – упрощение понимания кода сложных программных комплексов. Снижая сложность программных комплексов , соответственно, снижается затраты на их реализацию, т.е. их стоимость уменьшается.
При ОО – программировании используют статические и виртуальные методы. Оба этих метода являются «палкой с двумя концами». С одной стороны чтобы получить более быстродействующую и эффективно использующую память программу необходимо пользоваться статическим методом, но с другой стороны чтобы получить гибкость программного обеспечения необходимо пользоваться виртуальным методом при разработке программ.
Литература
В.Юров , С.Хорошенко Assembler. Учебный курс.
СПб , Издат-во Питер 1999г.
А.Марченко , Л.Марченко Программирование в среде Turbo Pascal 7.0
Киев , Москва , Издат-ва ВЕК+ и Бином Универсал 1998г.
А.Колесников, Б. Гинзберг Turbo Pascal 7.0
Киев Издат-во BHV 1997г.
