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

книги / Объектно-ориентированное программирование

..pdf
Скачиваний:
11
Добавлен:
12.11.2023
Размер:
16.61 Mб
Скачать

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

Ограничение доступа 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. Композиция (класс Сообщ ение - продолжение при­

 

мера 1 .5 ).................................................................................

46

Пример 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. Использование наследования (классы Окно и Символ).......

66

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

68

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

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. И спользование парам етра th is .........................................................

105

313

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

 

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

107

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

108

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

 

класса.................................................................................................

110

Пример 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. Использование абстрактных методов (графический ре­

 

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

204

Пример 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. Использование исключений (класс «Динамический мас­

 

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

256

К главе 6

 

 

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

 

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

262

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

 

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

264

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

269

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

270

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

2 8 2

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