Добавил:
sergeevpavel0406@mail.ru СОВА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика в техническом университете / Информатика в техническом университете. Объектно ориентированное программирование

.pdf
Скачиваний:
105
Добавлен:
06.03.2018
Размер:
9.48 Mб
Скачать

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

Абстракция 19,21,23

Декомпозиция объекта 28 объектная 25, 50, 196, 299 процедурная 11

Деструкторы виртуальные 76, 152 простые 38,76, 110,152

Дружественные функции 135

Инкапсуляция 20 Исключения 55, 251, 273

генерация 56,254,273 обработка 254, 274 обработка завершающая 252, 278

Классы абстрактные 133, 203 вложенные 108 иерархия 22, 35, 41, 68, 255

контейнерные 20, 63, 123, 205 локальные 52, 108, 161,223 определение 35, 59, 99, 192 параметризованные 54, 154,

Композиция 45, 86 Конструкторы 38, 70, 110, 194,295

копирующие 114, 126, 146, 159 неинициализирующие ИЗ, 151 переопределяемые ПО по умолчанию 151

Метаклассы 48,219 Методы абстрактные 133, 203, 144

виртуальные 69, 130, 202, 285 делегирование 49, 228, 263 динамические 202, 285 класса 222 перегруженные 207,262

переопределенные 42, 67, 129, 162 полиморфные 42, 67, 130, 161 статические 109, 285

Модульность 18, 20

Наследование виртуальное 127, 137 множественное 40, 125 простое 40, 63, 118 свойств 18

Наполнение 44, 86

Объекты динамические 77, 85, 144 операции 34 переопределение типа 44,266 поведение 33 полиморфные 41, 70 предметной области 29 простые 60

с динамическими полями 77, 144 состояние 32 статические 38, 144

310

Предметный указатель

Ограничение доступа 20, 37, 212 интерфейс 20, 37, 210 реализация 20, 38

Полиморфизм простой 41, 67, 129 сложный 42, 67, 129 чистый 42

Поля динамические 77, 144, 193 общедоступные 120, 139 объектные 86 статические 105

Программирование событийное 174 модульное 17 процедурное 11 структурное 12

Проектирование логическое 24, 93 физическое 24, 93

Свойства индексируемые 218, 272 массивы 214, 270 простые 210, 268

Связывание позднее 43 раннее 41

События 179 обработчики 180, 200 создание 246

Сообщения 33, 174 компонентов 247 методы обработки 174, 241 создание 241 црпсл обработки 174, 249

Стек вызовов 56, 275

Типизация 21

Устойчивость 22

Шаблоны 42, 165

Языки объектно-ориентированные 22 сравнительные характеристики 23

RTTI48, 220

ТВМ44, 132,220

ПЕРЕЧЕНЬ ПРИМЕРОВ

 

К главе 1

 

Пример 1.1. Процедурная декомпозиция (программа «Записная кни­

14

жка»)

Пример 1.2. Объектная декомпозиция (имитационная модель бензоко­

26

лонки)

Пример 1.3. Декомпозиция объекта (Блок колонок)

28

Пример 1.4. Простейший графический редактор

29

Пример 1.5. Объектная декомпозия (программа «Записная книжка»)

30

Пример 1.6. Описание класса (класс Окно)

36

Пример 1.7. Сокрытие реализации класса (класс Файл - продолжение

 

примера 1.5)

38

Пример 1.8. Наследование (класс Окноменяющеецвет)

40

Пример 1.9. Простой полиморфизм (класс Окностекстом)

42

Пример 1.10. Сложный полиморфизм

43

Пример 1.11. Композиция (класс Сообщение - продолжение при­

46

мера 1.5)

Пример 1.12. Наполнение (класс Функция)

47

Пример 1.13. Делегирование методов (класс Фигура)

50

Пример 1.14. Контейнерный класс с итератором (класс Список)

53

312

 

Перечень примеров

 

Пример 1.15. Контейнерный класс с процедурой обработки всех

 

объектов (класс Список)

54

Пример 1.16. Шаблон классов (шаблон классов Список)

55

К главе 2

 

Пример 2.1. Описание класса (класс Окно)

61

Пример 2.2. Разработка сложного класса без использования наследова­

 

ния (класс Символ)

64

Пример 2.3. Использование наследова1Шя (классы Окно и Символ)

66

Пример 2.4. Применение простого полиморфизма

68

Пример 2.5. Вызов виртуалып>1х методов из методов базового класса....

71

Пример 2.6. Использование процедуры с полиморфным объектом

72

Пример 2.7. Динамический объект с динамическим полем и контролем

 

выделения памяти

77

Пример 2.8. Статический объект с динамическим полем и контролем вы­

 

деления памяти

78

Пример 2.9. Использование динамических объектов (программа

 

«Снежинки»)

79

Пример 2.10. Размещение описания класса в модуле

84

Пример 2.11. Использование объектных полей

86

Пример 2.12. Использование полейуказателей на объекты

87

Пример 2.13. Программа «Текстовые эффекты»

92

К главе 3

 

Пример 3.1. Определение класса (класс Строка)

101

Пример 3.2. Различные способы инициализации полей объекта

103

Пример 3.3. Использование параметра this

105

 

313

Перечень примеров

 

Пример 3.4. Класс со статическими компонентами

107

Пример 3.5. Вложенные классы

108

Пример 3.6. Использование конструктора для инициализации полей

 

класса

ПО

Пример 3.7. Использование переопределяемых конструкторов

111

Пример 3.8. Использование конструктора с аргументами по умолчанию

112

Пример 3.9. Использование конструктора со списком инициализации и

 

неинициализкфующего конструктора

113

Пример 3.10. Использование предполагаемого копирующего конструктора ....

115

Пример 3.11. Явное определение копирующего конструктора

116

Пример 3.12. Определение деструктора в классе

118

Пример 3.13. Описание производного класса с типом доступа public ....

119

Пример 3.14. Описание производного класса с видом наследования

 

private

120

Пример 3.15. Порядок работы конструкторов базового и производного

 

классов

122

Пример 3.16. Последовательность описания и вызова конструкторов и

 

деструкторов при многоуровневой иерархии классов

123

Пример 3.17. Наследование от двух базовых классов

125

Пример 3.18. Виртуальное наследование

128

Пример 3.19. Использование раннего связывания

129

Пример 3.20. Использование виртуальных функций

131

Пример 3.21. Использование абстрактного класса при работе с поли­

 

морфными объектами

133

Пример 3.22. Внеышяя дружественная функция

135

Пример 3.23. Дружественная функция - компонент другого класса

136

314

Перечень примеров

 

Пример 3.24. Объявление дружественного класса

137

Пример 3.25. Описания функции-оператора вне класса

139

Пример 3.26. Пример описания компонентной функции-оператора

140

Пример 3.27. Переопределение коммутативной операции «умножение

 

на скаляр» и операции «+»

141

Пример 3.28. Переопределение операций ввода - вывода

143

Пример 3.29. Конструирование и разрушение объектов с динамичес­

 

кими полями

145

Пример 3.30. Использование собственного копирующего конструктора

146

Пример 3.31. Использование простых динамических объектов

149

Пример 3.32. Обработка массива динамических объектов

150

Пример 3.33. Использование указателей на базовый класс и виртуаль­

 

ного деструктора

152

Пример 3.34. Шаблон, позволяющий формировать одномерные

 

динамические массивы из заданных элементов

154

Пример 3.35. Использование шаблонов для формирования массивов и

 

печати их элементов

155

Пример 3.36. Использование шаблонов функций при создании шабло­

 

нов классов

156

Пример 3.37. Использование шаблона классов (шаблон классов «Мно­

 

жество»)

157

Пример 3.38. Контейнерный класс с процедурой поэлементной обработки ....

161

Пример 3.39. Контейнер на основе шаблона

165

К главе 4

 

Пример 4.1. Приложение «Возведение чисел в квадрат» (вариант 1) ....

182

Пример 4.2. Приложение «Возведение чисел в квадрат» (вариант 2) ....

188

 

315

Перечень примеров

К главе 5

Пример 5.1. Определение класса (графический редактор «Окружности» -

вариант 1)

;

196

Пример 5.2. Использование абстрактных методов (графический ре­

204

дактор «Окружности и квадраты» - вариант 1)

Пример 5.3. Использование простых свойств (графический редактор

 

«Окружности» - вариант 2)

212

Пример 5.4. Использование свойств-массивов (класс «Динамический

 

массив» - вариант 1)

215

Пример 5.5. Контейнер «Двусвязный линейный список»

223

Пример 5.6. Делегирование методов (графический редактор «Окруж­

 

ности и квадраты» - вариант 2)

229

Пример 5.7. Использование отношения «старший-младший» (прило­

 

жение «Определение вида четырехугольника»)

238

Пример 5.8. Передача/прием сообщения

244

Пример 5.9. Создание события

246

Пример 5.10. Прерьгоание длительной обработки

249

Пример 5.11. Использование исключений (класс «Динамический мас­

256

сив» - вариант 2)

К главе 6

 

 

Пример 6.1. Переопределение метода потомка перегруженным мето­

262

дом базового класса (с использованием объявления using)

Пример 6.2. Делегирование методов (графический редактор «Окруж­

264

ности и квадраты»)

Пример 6.3. Простые свойства (класс Целое число)

269

Пример 6.4. Свойства-массивы (класс Динамический массив)

270

Пример 6.5. Совместная обработка исключений различных типов

282

316

Перечень примеров

 

Пример 6.6. Статические, виртуальные и динамические полиморфные

 

методы

285

Пример 6.7. Разработка VCL-совместимого класса для реализации

 

главного окна приложения «Динамический массив»

290

Пример 6.8. Перекрытие виртуальных: методов в C++ классах и VCL-

 

совместимых классах

296

Пример 6.9. Инициализация полей при конструировании объектов

 

VCL-совместимых классов

297

Пример 6.10. Вызов виртуального метода из конструктора

299

Учебное издание

ИНФОРМАТИКА В ТЕХНИЧЕСКОМ УНИВЕРСИТЕТЕ

Иванова Галина Сергеевна Ничушкина Татьяна Николаевна Пугачев Евгений Константинович

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Редактор Н.Е. Овчеренко Художники С.С. Водчиц, Н.Г. Столярова

Корректор Л. И. Малютина

Компьютерная верстка И.Ю. Бурова

Изд. лиц. ЛР № 020523 от 25.04.97

Подписано в печать 27.03.2001. Формат 70x100/16. Печать офсетная. Бумага офсетная Гарнитура «Тайме». Усл. печ. л. 26. Уч.-изд. л. 26,28. Тираж 3000 экз. Заказ 1459

Издательство МГТУ им. Н. Э. Баумана, 107005, Москва, 2-я Бауманская, 5.

Отпечатано в соответствии с качеством предоставленного оригинал-макета в ППП «Типография «Наука» 121099, Москва, Шубинский пер., 6