Центр развития личности


Создание демонстрационных роликов для танцоров и коллективов. Посмотреть образцы


Каталог файлов
Меню сайта

Новости
Подпишитесь на новости и узнавайте о новой музыке и видео нашего сайта:
Ваш e-mail:


Темы сайта

Темы раздела
WEB-разработки [4]
Программирование [2]

Форма входа

Поиск

Друзья сайта

Rambler's Top100
Goon
каталог
RusList.net - каталог сайтов
Яндекс цитирования


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Приветствую Вас, Гость · RSS 30.11.2024, 08:41

Главная » Файлы » Компьютеры, интернет » Программирование

Б. Страуструп "Язык программирования С++"
[ Скачать с сервера (2.87 Mb) ] 21.07.2009, 14:46
Бьерн Страуструп. Язык программирования С++

Оглавление

ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ..................................................................................................................8
Об авторе книги: .............................................................................................................................................8
ПРЕДИСЛОВИЕ..................................................................................................................................................9
Выражение признательности .......................................................................................................................10
ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ ......................................................................................................11
Выражение признательности .......................................................................................................................11
ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ................................................................................................................12
Структура книги...........................................................................................................................................12
Замечания по реализации...............................................................................................................................13
Упражнения...................................................................................................................................................13
Замечания по проекту языка..........................................................................................................................13
Историческая справка...................................................................................................................................14
Сравнение языков С++ и С.............................................................................................................................15
Эффективность и структура .......................................................................................................................16
Философские замечания ................................................................................................................................17
Замечания о программировании на языке С++ .............................................................................................18
Несколько полезных советов.........................................................................................................................19
Замечание для программистов на С ..............................................................................................................19
Список литературы ......................................................................................................................................20
ГЛАВА 1. КРАТКИЙ ОБЗОР С++ .....................................................................................................................22
1.1 ВВЕДЕНИЕ ..............................................................................................................................................22
1.2 Парадигмы программирования...............................................................................................................22
1.2.1 Процедурное программирование.......................................................................................................23
1.2.2 Модульное программирование ..........................................................................................................24
1.2.3 Абстракция данных..........................................................................................................................25
1.2.4 Пределы абстракции данных ............................................................................................................27
1.2.5 Объектно-ориентированное программирование..............................................................................28
1.3 "Улучшенный С"......................................................................................................................................29
1.3.1 Программа и стандартный вывод ...................................................................................................29
1.3.2 Переменные и арифметические операции........................................................................................30
1.3.3 Указатели и массивы ........................................................................................................................31
1.3.4 Условные операторы и циклы...........................................................................................................31
1.3.5 Функции ............................................................................................................................................32
1.3.6 Модули ..............................................................................................................................................33
1.4 Поддержка абстракции данных..............................................................................................................35
1.4.1 Инициализация и удаление.................................................................................................................35
1.4.2 Присваивание и инициализация .........................................................................................................36
1.4.3 Шаблоны типа .................................................................................................................................37
1.4.4 Обработка особых ситуаций............................................................................................................37
1.4.5 Преобразования типов......................................................................................................................38
1.4.6 Множественные реализации ............................................................................................................39
1.5 Поддержка объектно-ориентированного программирования ................................................................40
1.5.1 Механизм вызова ...............................................................................................................................40
1.5.2 Проверка типа..................................................................................................................................41
1.5.3 Множественное наследование..........................................................................................................42
1.5.4 Инкапсуляция....................................................................................................................................43
1.6 Пределы совершенства...........................................................................................................................44
ГЛАВА 2. ОПИСАНИЯ И КОНСТАНТЫ ...........................................................................................................46
2.1 ОПИСАНИЯ............................................................................................................................................46
2.1.1 Область видимости ..........................................................................................................................47
2.1.2 Объекты и адреса .............................................................................................................................48
2.1.3 Время жизни объектов .....................................................................................................................48
2.2 ИМЕНА....................................................................................................................................................49
2.3 ТИПЫ......................................................................................................................................................49
Бьерн Страуструп. Язык программирования С++
3
2.3.1 Основные типы ................................................................................................................................50
2.3.2 Неявное преобразование типа ..........................................................................................................51
2.3.3 Производные типы...........................................................................................................................52
2.3.4 Тип void.............................................................................................................................................52
2.3.5 Указатели.........................................................................................................................................53
2.3.6 Массивы............................................................................................................................................53
2.3.7 Указатели и массивы ........................................................................................................................55
2.3.8 Структуры.......................................................................................................................................56
2.3.9 Эквивалентность типов ...................................................................................................................58
2.3.10 Ссылки ............................................................................................................................................59
2.4 ЛИТЕРАЛЫ.............................................................................................................................................61
2.4.1 Целые константы............................................................................................................................61
2.4.2 Константы с плавающей точкой.....................................................................................................62
2.4.3 Символьные константы ...................................................................................................................62
2.4.4 Строки..............................................................................................................................................63
2.4.5 Нуль...................................................................................................................................................63
2.5 Поименованные константы....................................................................................................................64
2.5.1. Перечисления ...................................................................................................................................65
2.6. Экономия памяти ...................................................................................................................................66
2.6.1 Поля ..................................................................................................................................................66
2.6.2. Объединения .....................................................................................................................................67
2.7 Упражнения ............................................................................................................................................68
ГЛАВА 3. ВЫРАЖЕНИЯ И ОПЕРАТОРЫ ........................................................................................................70
3.1 Калькулятор............................................................................................................................................70
3.1.1 Анализатор........................................................................................................................................70
3.1.2 Функция ввода ..................................................................................................................................74
3.1.3 Таблица имен........................................................................................................................................76
3.1.4 Обработка ошибок...........................................................................................................................77
3.1.5 Драйвер.............................................................................................................................................78
3.1.6 Параметры командной строки ........................................................................................................79
3.2 Сводка операций .....................................................................................................................................79
3.2.1 Скобки...............................................................................................................................................83
3.2.2 Порядок вычислений.........................................................................................................................83
3.2.3 Инкремент и декремент ...................................................................................................................84
3.2.4 Поразрядные логические операции....................................................................................................85
3.2.5 Преобразование типа........................................................................................................................86
3.2.6 Свободная память............................................................................................................................87
3.3 Сводка операторов..................................................................................................................................90
3.3.1 Выбирающие операторы ..................................................................................................................90
3.3.2 Оператор goto..................................................................................................................................92
3.4 Комментарии и расположение текста ...................................................................................................93
3.5 Упражнения.............................................................................................................................................94
ГЛАВА 4.............................................................................................................................................................97
4.1 Введение ...................................................................................................................................................97
4.2 Связывание...............................................................................................................................................97
4.3 Заголовочные файлы................................................................................................................................99
4.3.1 Единственный заголовочный файл .................................................................................................. 100
4.3.2 Множественные заголовочные файлы............................................................................................ 102
4.4 Связывание с программами на других языках........................................................................................ 104
4.5 Как создать библиотеку ........................................................................................................................ 105
4.6 Функции.................................................................................................................................................. 106
4.6.1 Описания функций........................................................................................................................... 106
4.6.2 Определения функций....................................................................................................................... 107
4.6.3 Передача параметров..................................................................................................................... 107
4.6.4 Возвращаемое значение.................................................................................................................... 109
4.6.5 Параметр-массив............................................................................................................................ 110
4.6.6 Перегрузка имени функции............................................................................................................... 111
4.6.7 Стандартные значения параметров............................................................................................... 113
4.6.8 Неопределенное число параметров.................................................................................................. 114
4.6.9 Указатель на функцию..................................................................................................................... 115
4.7 Макросредства ...................................................................................................................................... 118
4.8 Упражнения........................................................................................................................................... 120
5. КЛАССЫ...................................................................................................................................................... 122
5.1 Введение и краткий обзор....................................................................................................................... 122
5.2 Классы и члены....................................................................................................................................... 123
5.2.1 Функции-члены .................................................................................................................................... 123
5.2.2 Классы ............................................................................................................................................. 123
5.2.3 Ссылка на себя................................................................................................................................. 124
5.2.4 Инициализация................................................................................................................................. 127
5.2.5 Удаление .......................................................................................................................................... 128
5.2.6 Подстановка ................................................................................................................................... 129
5.3 Интерфейсы и реализации..................................................................................................................... 129
5.3.1 Альтернативные реализации ........................................................................................................... 130
5.3.2 Законченный пример класса ............................................................................................................. 132
5.4 Еще о классах......................................................................................................................................... 135
5.4.1 Друзья .............................................................................................................................................. 135
5.4.2 Уточнение имени члена.................................................................................................................... 136
5.4.3 Вложенные классы ........................................................................................................................... 137
5.4.4 Статические члены ......................................................................................................................... 138
5.4.5 Указатели на члены.......................................................................................................................... 139
5.4.6 Структуры и объединения............................................................................................................... 139
5.5 Конструкторы и деструкторы ............................................................................................................. 142
5.5.1 Локальные переменные .................................................................................................................... 142
5.5.2 Статическая память....................................................................................................................... 143
5.5.3 Свободная память........................................................................................................................... 144
5.5.4 Объекты класса как члены............................................................................................................... 144
5.5.5 Массивы объектов класса................................................................................................................ 146
5.5.6 Небольшие объекты........................................................................................................................ 146
5.6 Упражнения........................................................................................................................................... 147
ГЛАВА 6........................................................................................................................................................... 149
6.1 Введение и краткий обзор....................................................................................................................... 149
6.2 Производные классы ............................................................................................................................... 149
6.2.1 Функции-члены ................................................................................................................................ 151
6.2.2 Конструкторы и деструкторы....................................................................................................... 152
6.2.3 Иерархия классов............................................................................................................................. 153
6.2.4 Поля типа........................................................................................................................................ 153
6.2.5 Виртуальные функции...................................................................................................................... 155
6.3 Абстрактные классы............................................................................................................................. 156
6.4 Пример законченной программы ............................................................................................................ 158
6.4.1 Монитор экрана.............................................................................................................................. 158
6.4.2 Библиотека фигур ............................................................................................................................ 160
6.4.3 Прикладная программа .................................................................................................................... 162
6.5 Множественное наследование ............................................................................................................... 164
6.5.1 Множественное вхождение базового класса.................................................................................. 165
6.5.2 Разрешение неоднозначности.......................................................................................................... 165
6.5.3 Виртуальные базовые классы .......................................................................................................... 167
6.6 Контроль доступа................................................................................................................................. 171
6.6.1 Защищенные члены.......................................................................................................................... 171
6.6.2 Доступ к базовым классам............................................................................................................... 173
6.7 Свободная память ................................................................................................................................. 174
6.7.1 Виртуальные конструкторы ........................................................................................................... 175
6.7.2 Указание размещения...................................................................................................................... 178
6.8 Упражнения........................................................................................................................................... 179
ГЛАВА 7........................................................................................................................................................... 181
7.1 Введение ................................................................................................................................................. 181
7.2 Операторные функции ........................................................................................................................... 181
7.2.1 Бинарные и унарные операции ......................................................................................................... 182
7.2.2 Предопределенные свойства операций............................................................................................ 183
7.2.3 Операторные функции и пользовательские типы .......................................................................... 183
7.3 Пользовательские операции преобразования типа ............................................................................... 184
7.3.1 Конструкторы ................................................................................................................................ 184
7.3.2 Операции преобразования ................................................................................................................ 186
7.3.3 Неоднозначности ............................................................................................................................. 187
7.4 Литералы............................................................................................................................................... 189
7.5 Большие объекты .................................................................................................................................. 189
7.6 Присваивание и инициализация............................................................................................................... 190
7.7 Индексация............................................................................................................................................. 192
7.8 Вызов функции ....................................................................................................................................... 194
7.9 Косвенное обращение............................................................................................................................. 195
7.10 Инкремент и декремент...................................................................................................................... 196
7.11 Строковый класс.................................................................................................................................. 198
7.12 Друзья и члены...................................................................................................................................... 200
7.13 Предостережения ............................................................................................................................... 201
7.14 Упражнения ......................................................................................................................................... 201
ГЛАВА 8. ШАБЛОНЫ ТИПА .......................................................................................................................... 204
8.1 Введение ................................................................................................................................................. 204
8.2 Простой шаблон типа........................................................................................................................... 204
8.3 Шаблоны типа для списка...................................................................................................................... 206
8.3.1 Список с принудительной связью..................................................................................................... 207
8.3.2 Список без принудительной связи.................................................................................................... 209
8.3.3 Реализация списка ............................................................................................................................ 212
8.3.4 Итерация......................................................................................................................................... 213
8.4 Шаблоны типа для функций................................................................................................................... 215
8.4.1 Простой шаблон типа для глобальной функции ............................................................................. 216
8.4.2 Производные классы позволяют ввести новые операции ............................................................... 217
8.4.3 Передача операций как параметров функций ................................................................................. 218
8.4.4 Неявная передача операций ............................................................................................................. 219
8.4.5 Введение операций с помощью параметров шаблонного класса .................................................... 219
8.5 Разрешение перегрузки для шаблонной функции.................................................................................... 221
8.6 Параметры шаблона типа..................................................................................................................... 222
8.7 Шаблоны типа и производные классы ................................................................................................... 224
8.7.1 Задание реализации с помощью параметров шаблона.................................................................... 225
8.8 Ассоциативный массив.......................................................................................................................... 225
8.9 Упражнения........................................................................................................................................... 231
ГЛАВА 9........................................................................................................................................................... 232
9.1 Обработка ошибок ................................................................................................................................ 232
9.1.1 Особые ситуации и традиционная обработка ошибок .................................................................. 234
9.1.2 Другие точки зрения на особые ситуации....................................................................................... 235
9.2 Различение особых ситуаций.................................................................................................................. 235
9.3 Имена особых ситуаций ......................................................................................................................... 237
9.3.1 Группирование особых ситуаций..................................................................................................... 238
9.3.2 Производные особые ситуации........................................................................................................ 240
9.4 Запросы ресурсов ................................................................................................................................... 243
9.4.1 Конструкторы и деструкторы....................................................................................................... 244
9.4.2 Предостережения........................................................................................................................... 246
Исчерпание ресурса......................................................................................................................... 246
9.4.4 Особые ситуации и конструкторы ................................................................................................. 248
9.5 Особые ситуации могут не быть ошибками......................................................................................... 249
9.6 Задание интерфейса.............................................................................................................................. 251
9.6.1 Неожиданные особые ситуации...................................................................................................... 252
9.7 Неперехваченные особые ситуации........................................................................................................ 253
9.8 Другие способы обработки ошибок ....................................................................................................... 254
9.9 Упражнения........................................................................................................................................... 256
ГЛАВА 10. ПОТОКИ........................................................................................................................................ 257
10.1 ВВЕДЕНИЕ.......................................................................................................................................... 257
10.2 ВЫВОД................................................................................................................................................. 258
10.2.1 Вывод встроенных типов............................................................................................................... 259
10.2.2 Вывод пользовательских типов ..................................................................................................... 260
10.3 ВВОД .................................................................................................................................................... 261
10.3.1 Ввод встроенных типов ................................................................................................................. 261
10.3.2 Состояния потока ......................................................................................................................... 263
10.3.3 Ввод пользовательских типов........................................................................................................ 265
10.4 Форматирование ................................................................................................................................. 266
10.4.1 Класс ios......................................................................................................................................... 266
10.4.1.1 Связывание потоков ................................................................................................................ 266
10.4.1.2 Поля вывода ............................................................................................................................. 267
10.4.1.3 Состояние формата ............................................................................................................... 268
10.4.1.4 Вывод целых............................................................................................................................ 269
10.4.1.5 Выравнивание полей................................................................................................................. 270
10.4.1.6 Вывод плавающих чисел........................................................................................................... 270
10.4.2 Манипуляторы............................................................................................................................... 271
10.4.2.1 Стандартные манипуляторы ввода-вывода .......................................................................... 273
10.4.3 Члены ostream................................................................................................................................ 274
10.4.4 Члены istream................................................................................................................................. 275
10.5 Файлы и потоки ................................................................................................................................... 275
10.5.1 Закрытие потоков ......................................................................................................................... 276
10.5.2 Строковые потоки......................................................................................................................... 277
10.5.3 Буферизация .................................................................................................................................. 278
10.6 Ввод-вывод в С ..................................................................................................................................... 279
10.7 Упражнения ......................................................................................................................................... 281
ГЛАВА 11. ПРОЕКТИРОВАНИЕ И РАЗВИТИЕ............................................................................................. 283
11.1 Введение ............................................................................................................................................... 283
11.2 Цели и средства ................................................................................................................................... 285
11.3 Процесс развития ................................................................................................................................ 287
11.3.1 Цикл развития ............................................................................................................................... 289
11.3.2 Цели проектирования.................................................................................................................... 290
11.3.3 Шаги проектирования................................................................................................................... 291
11.3.3.1 Шаг 1: определение классов .................................................................................................... 292
11.3.3.2 Шаг 2: определение набора операций ..................................................................................... 293
11.3.3.3 Шаг 3: указание зависимостей ............................................................................................... 294
11.3.3.4 Шаг 4: определение интерфейсов ........................................................................................... 294
11.3.3.5 Перестройка иерархии классов ............................................................................................... 295
11.3.3.6 Использование моделей............................................................................................................ 295
11.3.4 Эксперимент и анализ.................................................................................................................... 296
11.3.5 Тестирование................................................................................................................................. 298
11.3.6 Сопровождение .............................................................................................................................. 298
11.3.7 Эффективность............................................................................................................................ 299
11.4 Управление проектом ........................................................................................................................... 299
11.4.1 Повторное использование .............................................................................................................. 299
11.4.2 Размер............................................................................................................................................ 301
Человеческий фактор..................................................................................................................... 302
11.5 Свод правил .......................................................................................................................................... 303
11.6 Список литературы с комментариями................................................................................................ 304
ГЛАВА 12. ПРОЕКТИРОВАНИЕ И С++......................................................................................................... 306
12.1 Проектирование и язык программирования......................................................................................... 306
12.1.1 Игнорирование классов................................................................................................................... 307
2.1.2 Игнорирование наследования ......................................................................................................... 309
12.1.3 Игнорирование статического контроля типов ............................................................................ 309
12.1.4 Гибридный проект......................................................................................................................... 312
12.2 Классы.................................................................................................................................................. 314
12.2.1 Что представляют классы?.......................................................................................................... 315
12.2.2 Иерархии классов........................................................................................................................... 316
12.2.3 Зависимости в рамках иерархии классов....................................................................................... 318
12.2.4 Отношения принадлежности........................................................................................................ 319
12.2.5 Принадлежность и наследование .................................................................................................. 321
12.2.6 Отношения использования............................................................................................................. 324
12.2.7 Отношения внутри класса............................................................................................................. 325
12.2.7.1 Инварианты............................................................................................................................ 326
12.2.7.2 Инкапсуляция ........................................................................................................................... 328
12.2.8 Программируемые отношения....................................................................................................... 328
12.3 Компоненты......................................................................................................................................... 330
12.4 Интерфейсы и реализации.................................................................................................................... 332
12.5 Свод правил .......................................................................................................................................... 334
ГЛАВА 13. ПРОЕКТИРОВАНИЕ БИБЛИОТЕК.............................................................................................. 335
13.1 Введение ............................................................................................................................................... 335
13.2 Конкретные типы ............................................................................................................................... 336
13.3 Абстрактные типы............................................................................................................................. 338
13.4 Узловые классы .................................................................................................................................... 342
13.5 Динамическая информация о типе....................................................................................................... 344
13.5.1 Информация о типе ....................................................................................................................... 346
13.5.2 Класс Type_info.............................................................................................................................. 347
13.5.3 Как создать систему динамических запросов о типе................................................................... 349
13.5.4 Расширенная динамическая информация о типе .......................................................................... 350
13.5.5 Правильное и неправильное использование динамической информации о типе...................... 350
13.6 Обширный интерфейс .......................................................................................................................... 351
13.7 Каркас области приложения................................................................................................................ 354
13.8 Интерфейсные классы......................................................................................................................... 355
13.9 Управляющие классы ............................................................................................................................ 358
13.10 Управление памятью .......................................................................................................................... 361
13.10.1 Сборщик мусора ........................................................................................................................... 362
13.10.2 Контейнеры и удаление................................................................................................................ 363
13.10.3 Функции размещения и освобождения......................................................................................... 366
13.11 Упражнения ....................................................................................................................................... 368
Категория: Программирование | Добавил: Админ
Просмотров: 1171 | Загрузок: 785 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Конструктор сайтов - uCoz