Бьярне Страуструп
Программирование
Принципы и практика использования C++
Исправленное издание
Оглавление
Предисловие
Обращение к читателям
Глава 1. Компьютеры, люди и программирование
1.1. Введение
1.2. Программное обеспечение
1.3. Люди
1.4. Компьютерные науки
1.5. Компьютеры повсюду
1.5.1. С экранами и без них
1.5.2. Кораблестроение
1.5.3. Телекоммуникации
1.5.4. Медицина
1.5.5. Информация
1.5.6. Вид сверху
1.5.7. И что?
1.6. Идеалы программистов
Часть I. Основы
Глава 2. Hello, World!
2.1. Программы
2.2. Классическая первая программа
2.3. Компиляция
2.4. Редактирование связей
2.5. Среды программирования
Глава 3. Объекты, типы и значения
3.1. Ввод
3.2. Переменные
3.3. Ввод и тип
3.4. Операции и операторы
3.5. Присваивание и инициализация
3.5.1. Пример: выявление повторяющихся слов
3.6. Составные операторы присваивания
3.6.1. Пример: поиск повторяющихся слов
3.7. Имена
3.8. Типы и объекты
3.9. Типовая безопасность
3.9.1. Безопасные преобразования
3.9.2. Опасные преобразования
Глава 4. Вычисления
4.1. Вычисления
4.2. Цели и средства
4.3. Выражения
4.3.1. Константные выражения
4.3.2. Операторы
4.3.3. Преобразования
4.4. Инструкции
4.4.1. Инструкции выбора
4.4.1.1. Инструкции if
4.4.1.2. Инструкции switch
4.4.1.3. Технические подробности инструкции switch
4.4.2. Итерация
4.4.2.1. Инструкции while
4.4.2.2. Блоки
4.4.2.3. Инструкции for
4.5. Функции
4.5.1. Зачем нужны функции
4.5.2. Объявления функций
4.6. Вектор
4.6.1. Увеличение вектора
4.6.2. Числовой пример
4.6.3. Текстовый пример
4.7. Свойства языка
Глава 5. Ошибки
5.1. Введение
5.2. Источники ошибок
5.3. Ошибки во время компиляции
5.3.1. Синтаксические ошибки
5.3.2. Ошибки, связанные с типами
5.3.3. Не ошибки
5.4. Ошибки во время редактирования связей
5.5. Ошибки во время выполнения программы
5.5.1. Обработка ошибок в вызывающем модуле
5.5.2. Обработка ошибок в вызываемом модуле
5.5.3. Сообщения об ошибках
5.6. Исключения
5.6.1. Неправильные аргументы
5.6.2. Ошибки, связанные с диапазоном
5.6.3. Неправильный ввод
5.6.4. Суживающие преобразования
5.7. Логические ошибки
5.8. Оценка
5.9. Отладка
5.9.1. Практические советы по отладке
5.10. Пред- и постусловия
5.10.1. Постусловия
5.11. Тестирование
Глава 6. Создание программ
6.1. Задача
6.2. Размышления над задачей
6.2.1. Стадии разработки программы
6.2.2. Стратегия
6.3. Назад к калькулятору!
6.3.1. Первое приближение
6.3.2. Лексемы
6.3.3. Реализация лексем
6.3.4. Использование лексем
6.3.5. Назад к школьной доске!
6.4. Грамматики
6.4.1. Отступление: грамматика английского языка
6.4.2. Запись грамматики
6.5. Превращение грамматики в программу
6.5.1. Реализация грамматических правил
6.5.2. Выражения
6.5.2.1. Выражения: первая попытка
6.5.2.2. Выражения: вторая попытка
6.5.2.3. Выражения: третья попытка (удачная)
6.5.3. Термы
6.5.4. Первичные выражения
6.6. Испытание первой версии
6.7. Испытание второй версии
6.8. Потоки лексем
6.8.1. Реализация класса Token_stream
6.8.2. Считывание лексем
6.8.3. Считывание чисел
6.9. Структура программы
Глава 7. Завершение программы
7.1. Введение
7.2. Ввод и вывод
7.3. Обработка ошибок
7.4. Отрицательные числа
7.5. Остаток от деления: %
7.6. Приведение кода в порядок
7.6.1. Символические константы
7.6.2. Использование функций
7.6.3. Расположение кода
7.6.4. Комментарии
7.7. Исправление ошибок
7.8. Переменные
7.8.1. Переменные и определения
7.8.2. Использование имен
7.8.3. Предопределенные имена
7.8.4. Все?
Глава 8. Технические детали: функции и прочее
8.1. Технические детали
8.2. Объявления и определения
8.2.1. Виды объявлений
8.2.2. Объявления переменных и констант
8.2.3. Инициализация по умолчанию
8.3. Заголовочные файлы
8.4. Область видимости
8.5. Вызов функции и возврат значения
8.5.1. Объявление аргументов и тип возвращаемого значения
8.5.2. Возврат значения
8.5.3. Передача параметров по значению
8.5.4. Передача параметров по константной ссылке
8.5.5. Передача параметров по ссылке
8.5.6. Сравнение механизмов передачи параметров по значению и по ссылке
8.5.7. Проверка аргументов и преобразование типов
8.5.8. Реализация вызова функции
8.6. Порядок вычислений
8.6.1. Вычисление выражения
8.6.2. Глобальная инициализация
8.7. Пространства имен
8.7.1. Объявления using и директивы using
Глава 9. Технические детали: классы и прочее
9.1. Типы, определенные пользователем
9.2. Классы и члены класса
9.3. Интерфейс и реализация
9.4. Разработка класса
9.4.1. Структуры и функции
9.4.2. Функции-члены и конструкторы
9.4.3. Скрываем детали
9.4.4. Определение функций-членов
9.4.5. Ссылка на текущий объект
9.4.6. Сообщения об ошибках
9.5. Перечисления
9.6. Перегрузка операторов
9.7. Интерфейсы классов
9.7.1. Типы аргументов
9.7.2. Копирование
9.7.3. Конструкторы по умолчанию
9.7.4. Константные функции-члены
9.7.5. Члены и вспомогательные функции
9.8. Класс Date
Часть II Ввод и вывод
Глава 10 Потоки ввода и