Мюррэй Хилл, Нью Джерси Бьярн Страустрап
Язык C++
Содержание 1
Предисловие 8
Благодарности 8
Заметки для читателя 10
Структура этой книги 10
Замечания по реализации 11
Упражнения 11
Замечания по проекту языка 11
Исторические замечания 12
Эффективность и структура 13
Философские замечания 15
Размышления о программировании на C++ 15
Правила правой руки 17
Замечания для программистов на C 17
Глава 1
Турне по C++ 18
1.1 Введение 18
1.1.1 Вывод 18
1.1.2 Компиляция 19
1.1.3 Ввод 20
1.2 Комментарии 21
1.3 Типы и Описания 21
1.3.1 Основные Tипы 21
1.3.2 Производные Типы 23
1.4 Выражения и Операторы 23
1.4.1 Выражения 23
1.4.2 Операторы Выражения 24
1.4.3 Пустой оператор 24
1.4.4 Блоки 24
1.4.5 Операторы if 25
1.4.6 Операторы switch 25
1.4.7 Оператор while 26
1.4.8 Оператор for 26
1.4.9 Описания 27
1.5 Функции 27
1.6 Структура программы 28
1.7 Классы 30
1.8 Перегрузка операций 31
1.9 Ссылки 32
1.10 Конструкторы 33
1.11 Вектора 34
1.12 Inline-подстановка 35
1.13 Производные классы 36
1.14 Еще об операциях 37
1.15 Друзья (friend) 39
1.16 Обобщенные Вектора 40
1.17 Полиморфные Вектора 40
1.18 Виртуальные функции 42
Глава 2
Описания и Константы 43
2.1 Описания 43
2.1.1 Область Видимости 44
2.1.2 Объекты и Адреса (Lvalue) 46
2.1.3 Время Жизни 46
2.2 Имена 47
2.3 Типы 47
2.3.1 Основные Типы 48
2.3.2 Неявное Преобразование Типа 49
2.3.3 Производные Типы 50
2.3.4 Тип void 51
2.3.5 Указатели 51
2.3.6 Вектора 52
2.3.7 Указатели и Вектора 54
2.3.8 Структуры 55
2.3.9 Эквивалентность типов 57
2.3.10 Ссылки 58
2.3.11 Регистры 60
2.4 Константы 61
2.4.1 Целые Константы 61
2.4.2 Константы с Плавающей Точкой 62
2.4.3 Символьные Константы 62
2.4.4 Строки 63
2.4.5 Ноль 64
2.4.6 Const 64
2.4.7 Перечисления 65
2.5 Экономия Пространства 66
2.5.1 Поля 66
2.5.2 Объединения 67
2.6 Упражнения 69
Глава 3
Выражения и операторы 71
3.1 Настольный калькулятор 71
3.1.1 Программа синтаксического разбора 71
3.1.2 Функция ввода 76
3.1.3 Таблица имен 78
3.1.4 Обработка ошибок 80
3.1.5 Драйвер 81
3.1.6 Параметры командной строки 82
3.2 Краткая сводка операций 83
3.2.1 Круглые скобки 85
3.2.2 Порядок вычисления 85
3.2.2 Увеличение и уменьшение* 86
3.2.4 Побитовые логические операции 87
3.2.5 Преобразование типа 88
3.2.6 Свободная память 89
3.3 Сводка операторов 92
3.3.1 Проверки 93
3.3.2 Goto 95
3.4 Комментарии и Выравнивание 96
3.5 Упражнения 97
Глава 4
Функции и Файлы 100
4.1 Введение 100
4.2 Компоновка 101
4.3 Заголовочные Файлы 102
4.3.1 Один Заголовочный Файл 104
4.3.2 Множественные Заголовочные Файлы 107
4.3.3 Скрытие Данных 109
4.4 Файлы как Модули 110
4.5 Как Создать Библиотеку 111
4.6 Функции 112
4.6.1 Описания Функций 112
4.6.2 Определения Функций 112
4.6.3 Передача Параметров 113
4.6.4 Возврат Значения 114
4.6.5 Векторные Параметры 115
4.6.6 Параметры по Умолчанию 116
4.6.7 Перегрузка Имен Функций 117
4.6.8 Незаданное Число Параметров 119
4.6.9 Указатель на Функцию 120
4.7 Макросы 124
4.8 Упражнения 125
Глава 5
Классы 128
5.1 Знакомство и краткий обзор 128
5.2 Классы и Члены 129
5.2.1 Функции Члены 129
5.2.2 Классы 130
5.2.3 Ссылки на Себя 131
5.2.4 Инициализация 132
5.2.5 Очистка 134
5.2.6 Inline 135
5.3 Интерфейсы и Реализации 135
5.3.1 Альтернативные Реализации 136
5.3.2 Законченный Класс 139
5.4 Друзья и Объединения 142
5.4.1 Друзья 142
5.4.2 Уточнение* Имени Члена 144
5.4.3 Вложенные Классы 144
5.4.4 Статические Члены 145
5.4.5 Указатели на Члены 146
5.4.6 Структуры и Объединения 147
5.5 Конструкторы и Деструкторы 149
5.5.1 Предостережение 150
5.5.2 Статическая Память 150
5.5.3 Свободная Память 152
5.5.4 Объекты Класса и Члены 152
5.5.5 Вектора Объектов Класса 154
5.5.6 Небольшие Объекты 155
5.5.7 Предостережение 156
5.5.8 Объекты Переменного Размера 157
5.6 Упражнения 158
Глава 6
Перегрузка Операций 160
6.1 Введение 160
6.2 Функции Операции 161
6.2.1 Бинарные и Унарные Онерации 161
6.2.2 Предопределенные Значения Операций 162
6.2.3 Операции и Определяемые Пользователем Типы 162
6.3 Определяемое Преобразование Типа 163
6.3.1 Конструкторы 164
6.3.2 Операции Преобразования 164
6.3.3 Неоднозначности 166
6.4 Константы 167
6.5 Большие Объеты 167
6.6 Присваивание и Инициализация 168
6.7 Индексирование 170
6.8 Вызов Функции 172
6.9 Класс Строка 173
6.10 Друзья и Члены 177
6.11 Предостережение 177
6.12 Упражнения 178
Глава 7
Производные Классы 181
7.1 Введение 181
7.2 Производные Классы 182
7.2.1 Построение Производного Класса 182
7.2.2 Функции Члены 183
7.2.3 Видимость 184
7.2.4 Указатели 186
7.2.5 Иерархия Типов 187
7.2.6 Конструкторы и Деструкторы 187
7.2.7 Поля Типа 188
7.2.8 Виртуальные Функции 190
7.3 Альтернативные Интерфейсы 192
7.3.1 Интерфейс 192
7.3.2 Реализация 193
7.3.3 Как Этим Пользоваться 194
7.3.4 Обработка Ошибок 196
7.3.5 Обобщенные Классы 197
7.3.6 Ограниченные Интерфейсы 199
7.4 Добавление к Классу 199
7.5 Неоднородные Списки 201
7.6 Законченна Программа 201
7.6.1 Администратор Экрана 201
7.6.2 Библиотека Фигур 203
7.6.3 Прикладная Программа 207
7.7 Свободная Память 209
7.8 Упражнения 210