
- •Содержание
- •1. Глава Первая 14
- •2. Глава Вторая 43
- •2.1. Описания 43
- •3. Глава Третья 78
- •4. Глава Четвертая 95
- •5. Глава Пятая. Классы 122
- •6. Глава Шестая. Перегрузка Операций 157
- •6.1. Введение 157
- •7. Глава Седьмая 182
- •7.1. Введение 182
- •8. Глава Восьмая. Потоки 206
- •8.1. Введение 207
- •Предисловие
- •Исторические замечания
- •Эффективность и структура
- •Правила правой руки
- •1.Глава Первая
- •1.1.Начало
- •1.1.1.Вывод на экран
- •1.1.2.Компиляция
- •1.1.3.Ввод
- •1.2.Комментарии
- •1.3.Типы и описания
- •1.3.1.Основные типы
- •1.3.2.Производные типы
- •1.4.Выражения и операторы
- •1.4.1.Выражения
- •1.4.6.Операторы switch
- •1.4.7.Оператор while
- •1.4.8.Оператор for
- •1.4.9.Описания
- •1.5.Функции
- •1.6.Структура программы
- •1.7.Классы
- •1.8.Перегрузка операций
- •1.9.Конструкторы
- •1.10.Векторы
- •1.11.Inline-подстановка
- •1.12.Производные классы
- •1.13.Еще об операциях
- •1.14.Друзья (friends)
- •1.15.Обобщенные векторы
- •1.16.Полиморфные Вектора
- •1.17.Виртуальные функции
- •2.Глава Вторая
- •2.1.Описания
- •2.1.1.Область видимости
- •2.1.2.Объекты и адреса (Lvalue)
- •2.1.3.Время жизни
- •2.2.Имена
- •2.3.Типы
- •2.3.1.Основные типы
- •2.3.2.Неявное преобразование типа
- •2.3.3.Производные типы
- •2.3.5.Указатели
- •2.3.6.Векторы
- •2.3.7.Указатели и векторы
- •2.3.8.Структуры
- •2.3.9.Эквивалентность типов
- •2.3.10.Ссылки
- •2.4.Константы
- •2.4.1.Целые константы
- •2.4.2.Константы с плавающей точкой
- •2.4.3.Символьные константы
- •2.4.4.Строки
- •2.4.5.Ноль
- •2.4.7.Перечисления
- •2.5.Экономия пространства
- •2.5.1.Поля
- •2.5.2.Объединения
- •3.Глава Третья
- •3.1.Краткая сводка операций
- •Сводка операций
- •3.1.1.Круглые скобки
- •3.1.2.Порядок вычисления
- •3.1.3.Увеличение и уменьшение
- •3.1.4.Побитовые логические операции
- •3.1.5.Преобразование типа
- •3.1.6.Свободная память
- •3.2.Сводка операторов
- •3.2.1.Проверки
- •3.3.Комментарии и выравнивание
- •4.Глава Четвертая
- •4.1.Введение
- •4.2. Компоновка
- •4.3.Заголовочные файлы
- •4.3.1.Один заголовочный файл
- •4.3.2.Множественные заголовочные файлы
- •4.3.3.Скрытие данных
- •4.4.Файлы как Модули
- •4.5.Как создать библиотеку
- •4.6.Функции
- •4.6.1.Описания функций
- •4.6.2.Определения функций
- •4.6.3.Передача Параметров
- •4.6.4.Возврат значения
- •4.6.5.Векторные параметры
- •4.6.6.Параметры по умолчанию
- •4.6.7.Перегрузка имен функций
- •4.6.8.Незаданное число параметров
- •4.6.9.Указатель на функцию
- •4.7. Макросы
- •5.Глава Пятая. Классы
- •5.1.Знакомство и краткий обзор
- •5.2.Классы и члены
- •5.2.1.Функции члены
- •5.2.2.Классы
- •5.2.3.Ссылки на себя
- •5.2.4.Инициализация
- •5.2.5.Очистка
- •5.3.Интерфейсы и реализации
- •5.3.1.Законченный класс
- •5.4.Друзья и объединения
- •5.4.1.Друзья
- •5.4.2.Уточнение имени члена
- •5.4.3.Вложенные классы
- •5.4.4.Статические члены
- •5.4.5.Структуры и объединения
- •5.5.Конструкторы и деструкторы
- •5.5.1.Предостережение
- •5.5.2.Статическая память
- •5.5.3.Свободная память
- •5.5.4.Объекты класса и члены
- •5.5.5.Векторы объектов класса
- •5.5.6.Небольшие объекты
- •5.5.7.Предостережение
- •5.5.8.Объекты переменного размера
- •6.Глава Шестая. Перегрузка Операций
- •6.1. Введение
- •6.2.Функции операции
- •6.2.1.Бинарные и унарные операции
- •6.2.2.Предопределенные значения операций
- •6.2.3.Операции и определяемые пользователем типы
- •6.3.Определяемое преобразование типа
- •6.3.1.Конструкторы
- •6.3.2.Операции преобразования
- •6.3.3.Неоднозначности
- •6.4.Константы
- •6.5.Большие объекты
- •6.6.Присваивание и инициализация
- •6.7.Индексирование
- •6.8.Вызов функции
- •6.9.Класс строка
- •6.10.Друзья и члены
- •6.11.Предостережение
- •7.Глава Седьмая
- •7.1.Введение
- •7.2.Производные классы
- •7.2.1.Построение производного класса
- •7.2.2.Функции члены
- •7.2.3.Видимость
- •7.2.4.Указатели
- •7.2.5.Иерархия типов
- •7.2.6.Конструкторы и деструкторы
- •7.2.7.Поля типа
- •7.2.8.Виртуальные функции
- •7.3.Альтернативные интерфейсы
- •7.3.1.Интерфейс
- •7.3.2.Реализация
- •7.3.3.Как этим пользоваться
- •7.3.4.Ограниченные интерфейсы
- •7.4.Добавление к классу
- •7.5.Неоднородные списки
- •8.Глава Восьмая. Потоки
- •8.1.Введение
- •8.2.Вывод
- •8.2.1.Вывод встроенных типов
- •8.2.2.Некоторые подробности разработки
- •8.2.3.Форматированный вывод
- •8.2.4.Виртуальная функция вывода
- •8.3.Файлы и потоки
- •8.3.1.Инициализация потоков вывода
- •8.3.2.Закрытие потоков вывода
- •8.3.3.Открытие файлов
- •8.3.4.Копирование потоков
- •8.4.Ввод
- •8.4.1.Ввод встроенных типов
- •8.4.2.Состояния потока
- •8.4.3.Ввод типов, определяемых пользователем
- •8.4.4.Инициализация потоков ввода
- •8.5.Работа со строками
- •8.6.Буферизация
- •8.7.Эффективность
Содержание
СОДЕРЖАНИЕ 3
Предисловие 8
Исторические замечания 9
Эффективность и структура 10
Правила правой руки 12
1. Глава Первая 14
1.1. Начало 14
1.1.1. Вывод на экран 14
1.1.2. Компиляция 15
1.1.3. Ввод 15
1.2. Комментарии 16
1.3. Типы и описания 17
1.3.1. Основные типы 18
1.3.2. Производные типы 19
1.4. Выражения и операторы 20
1.4.1. Выражения 20
1.4.2. Операторы выражения 21
1.4.3. Пустой оператор 21
1.4.4. Блоки 21
1.4.5. Операторы if 22
1.4.6. Операторы switch 23
1.4.7. Оператор while 23
1.4.8. Оператор for 24
1.4.9. Описания 25
1.5. Функции 25
1.6. Структура программы 27
1.7. Классы 28
1.8. Перегрузка операций 30
1.9. Конструкторы 32
1.10. Векторы 32
1.11. Inline-подстановка 34
1.12. Производные классы 35
1.13. Еще об операциях 37
1.14. Друзья (friends) 38
1.15. Обобщенные векторы 39
1.16. Полиморфные Вектора 40
1.17. Виртуальные функции 41
2. Глава Вторая 43
2.1. Описания 43
2.1.1. Область видимости 45
2.1.2. Объекты и адреса (Lvalue) 47
2.1.3. Время жизни 47
2.2. Имена 48
2.3. Типы 49
2.3.1. Основные типы 49
2.3.2. Неявное преобразование типа 51
2.3.3. Производные типы 52
2.3.4. Тип void 53
2.3.5. Указатели 54
2.3.6. Векторы 55
2.3.7. Указатели и векторы 57
2.3.8. Структуры 59
2.3.9. Эквивалентность типов 61
2.3.10. Ссылки 62
2.4. Константы 66
2.4.1. Целые константы 66
2.4.2. Константы с плавающей точкой 67
2.4.3. Символьные константы 68
2.4.4. Строки 69
2.4.5. Ноль 70
2.4.6. Const 70
2.4.7. Перечисления 72
2.5. Экономия пространства 73
2.5.1. Поля 74
2.5.2. Объединения 75
3. Глава Третья 78
3.1. Краткая сводка операций 78
Сводка операций 79
3.1.1. Круглые скобки 80
3.1.2. Порядок вычисления 80
3.1.3. Увеличение и уменьшение 81
3.1.4. Побитовые логические операции 82
3.1.5. Преобразование типа 83
3.1.6. Свободная память 85
3.2. Сводка операторов 88
3.2.1. Проверки 89
3.2.2. Goto 92
3.3. Комментарии и выравнивание 92
4. Глава Четвертая 95
4.1. Введение 95
4.2. Компоновка 96
4.3. Заголовочные файлы 98
4.3.1. Один заголовочный файл 100
4.3.2. Множественные заголовочные файлы 101
4.3.3. Скрытие данных 101
4.4. Файлы как Модули 102
4.5. Как создать библиотеку 103
4.6. Функции 105
4.6.1. Описания функций 105
4.6.2. Определения функций 105
4.6.3. Передача Параметров 106
4.6.4. Возврат значения 107
4.6.5. Векторные параметры 108
4.6.6. Параметры по умолчанию 110
4.6.7. Перегрузка имен функций 111
4.6.8. Незаданное число параметров 113
4.6.9. Указатель на функцию 116
4.7. Макросы 119
5. Глава Пятая. Классы 122
5.1. Знакомство и краткий обзор 122
5.2. Классы и члены 123
5.2.1. Функции члены 124
5.2.2. Классы 125
5.2.3. Ссылки на себя 126
5.2.4. Инициализация 128
5.2.5. Очистка 130
5.2.6. Inline 131
5.3. Интерфейсы и реализации 132
5.3.1. Законченный класс 133
5.4. Друзья и объединения 135
5.4.1. Друзья 136
5.4.2. Уточнение имени члена 138
5.4.3. Вложенные классы 139
5.4.4. Статические члены 140
5.4.5. Структуры и объединения 141
5.5. Конструкторы и деструкторы 145
5.5.1. Предостережение 145
5.5.2. Статическая память 146
5.5.3. Свободная память 148
5.5.4. Объекты класса и члены 148
5.5.5. Векторы объектов класса 151
5.5.6. Небольшие объекты 152
5.5.7. Предостережение 154
5.5.8. Объекты переменного размера 155