Предметный указатель
#
#include, 45
А
Abelson, Harold, 25
ADL, см. Поиск, зависящий от аргумента assert, 45; 112; 144
auto_ptr, 168
В
Bell, Gordon, 25
Bentley, Jon, 25; 29
binary_search, 179
С
Cargill, Tom, 92
const, 42; 142; 194
У входных параметров функций, 58
CVS, 20
D
delete, 95
Dependency inversion principle, 54; 77
deque, 164; 171
Diamond, Norman, 99
dynamic_cast, 41; 193
E
equal_range, 179
errno, 154
explicit, 85; 110
F
find,179
fmd_if, 179
for_each, 28
I
inline, 30
К
Knuth, Donald, 23; 29
L
list, 164
lower_bound, 179
M
map, 164
McConnell, Steve, 25; 144
memcmp, 197
memcpy, 197
mutable, 42
N
new, 95; 97
Размещающий, 98
nth_element, 180
P
partial_sort, 180
partition, 180
Perlis, Alan, 23; 39; 57; 117; 143; 187
Plain Old Data, 190
POD, 190
push_back, 28; 169
R
RAII, 37
realloc, 24
reinterpret_cast, 192
return, 17
Стр.221
s
Schwarz, Jerry, 127
set, 164
shared_ptr, 125; 168
sort, 180
Spencer, Henry, 187
stable_partition, 180
stable_sort, 180
static_cast, 41; 193
string, 167; 171
Stroustrup, Bjarne, 69; 133; 143; 163; 173
struct, 33
Sussman, Gerald Jay, 25
swap, 114; 140
U
upper_bound, 179
using, 119; 122
V
vector, 164; 166; 167; 171
volatile, 49
A
Абельсон, Гарольд, 25
Абстрактный интерфейс, 77; 188
Агрегаты значений, 88
Алгоритмы STL, 173
Аргумент по умолчанию, 81
Атомарные операции, 34
Б
Белл, Гордон,25
Бентли, Ион, 25; 29
В
Венгерская запись, 15
Взаимоблокировка, 34; 36
Вложенность блоков, 50
Внешнее связывание, 32
Время жизни, 47; 200
Г
Гарантии безопасности, 151
Глобальные объекты, 32
Д
Даймонд, Норман, 99
Декремент
Префиксная и постфиксная формы, 62
Дескриптор, 89
Деструктор, 106;151
Виртуальный, 76; 104
Динамическое связывание, 134
Дружба, 73
З
Зависимости определений, 53
Зависимые имена, 55; 138
Заголовочный файл, 16; 55
Защита от множественного включения, 56
Закон Второго Шанса, 78
И
Идиома
Erase-remove, 171
Pimpl,42;73;87;91; 114; 186
RAII, 17; 37; 108; 109
Бессбойного принятия работы, 155
Выделение ресурса есть инициализация,
См. RAII
Индексного контейнера, 180
Клонирования, 111
Копирующего присваивания, 107
Присваивания через обмен, 114
Реализации оператора через присваивающую версию, 60
Реализации постфиксного оператора через префиксный, 62
Устранения излишней емкости контейнера, 171
Имя
Зависимое, 138
Инвариант, 148
Инициализация, 17; 32; 48; 100; 101
Порядок, 52
Инкапсуляция, 83; 87
Инкремент
Префиксная и постфиксная формы, 62
Интеллектуальный указатель, 38; 168
Интерфейс, 130
Абстрактный, 77
Неявный, 134
Открытый, 83; 118
Исключение, 71; 106; 128; 146; 154; 158
Генерация, 158
Повторная генерация, 158
Преобразование, 159
Стр.222
Итератор, 142
Недействительный, 175
К
Каргилл, Том, 92
Класс, 69
Базовый, 70; 74; 75; 84; 105
Вспомогательный, 71
Инициализация, 100; 101
Исключения, 71
Класс-значение, 70
Минимальный, 72
Множественное наследование, 78
Монолитный, 72
Производный, 81
Пустой базовый, 74; 78
Свойств, 70
Стратегии, 70; 80; 105
Кнут, Дональд, 23; 29
Код состояния, 154
Командная работа, 21; 131
Комментарий, 14
Композиция, 73
Конструктор, 155
Неявно преобразующий, 85
Копирование, 109
Копирующее присваивание, 152
Копирующий конструктор, 37
Л
Лямбда-функция, 177
М
Мак-Коннелл, Стив, 25; 144
Макрос, 44
Массив, 201
Масштабируемость, 27; 31; 32
Минимизация зависимостей, 33
Многопоточность, 34
Взаимоблокировка, 34
Внешняя блокировка, 35
Внутренняя блокировка, 35
Условия гонки, 34
Множественное наследование, 78
Модульность, 77
Н
Наследование, 73; 75
Открытое, 79
Недействительные объекты, 200
Неиспользуемый параметр функции, 17
О
Обобщенность кода, 94; 142
Объединение, 198
Оператор, 155
++, --, 62
<<, >>, 119
Присваивания, 113
Ошибка, 151; 154
Времени выполнения, 146
Обработка, 159
При работе с STL, 174
П
Память, 125
Перегрузка операторов, 25; 59
&&, || и , , 65
Переносимость, 34
Перлис, Алан, 23; 39; 57; 117; 143; 187
Повторная генерация исключения, 158
Повторное использование, 80
Поиск
Зависящий от аргументов, 118; 120; 136
Имен, 73; 75; 78
Кенига, 118; 120
Полиморфизм, 74; 110; 158; 188; 201
Динамический, 80; 134
Статический, 78; 134
Порядок вычисления аргументов функции, 67
Порядок инициализации, 32
Постконструктор, 102
Постусловие, 148
Потоки выполнения, 34
Правило
Одного определения, 124
Предикат, 182
Предусловие, 148
Преждевременная оптимизация, 25; 29
Преждевременная пессимизация, 31
Преобразование типов, 64; 85
Принцип
Инверсии зависимостей, 54; 77
Интерфейса, 118
Открытости-Закрытости, 188
Подстановки Лисков, 79
Присваивание, 37
Копирующее, 113
Самому себе, 113; 152
Пространство имен, 122
Стр.223
Р
Работа с ресурсами, 37
Разработка библиотеки, 30; 31; 33; 36; 59; 66;130; 136
Распределение памяти, 125; 167
Рецензирование кода, 21
С
Сассман, Джеральд, 25
Сборка программы, 19
Связность, 94
Связывание, 73; 126
Динамическое, 134
Статическое, 135
Сериализация, 32; 34
Система управления версиями, 20
Сложность алгоритма, 27
Совместно используемые данные, 32
Сокрытие данных, 33; 87; 89; 197
Сокрытие имен, 82
Спенсер, Генри, 187
Специализация шаблона функции, 140
Спецификации исключений, 160
Срезка, 76; 110
Статическое связывание, 135
Стиль проектирования, 23
Страуструп, Бьярн, 69; 133; 143; 163;173
Т
Табуляция, 15
Транзакция, 106; 151
У
Указатель на реализацию, 91
Условия гонки, 34
Утечка, 38
Ф
Функциональный объект, 184; 186
Функция, 50
Аргумент по умолчанию, 81
Виртуальная, 83; 102
Встраиваемая, 127
Инвариант, 148
Неиспользуемый параметр, 17
Обмена, 107; 114; 151
Освобождения ресурсов, 107; 151
Перегрузка, 85; 140
Передача параметров по значению, 43; 58
Передача параметров по ссылке, 58
Передача параметров посредством указателей, 58
Перекрытие, 81
Порядок вычисления аргументов, 67
Постусловие, 148
Предусловие, 148
С переменным количеством аргументов, >199
Шаблон, 140
Функция обратного вызова, 36
Ш
Шаблон, 134
Точка настройки, 136
Функции, 140
Шаблон проектирования
Acyclic Visitor, 54
Command, 54; 135
Nonvirtual Interface, 83; 104; 111
Observer, 176
Singleton, 52
Template Method, 83; 104
Visitor, 54; 135
Шварц, Джерри, 127
Э
Эффективность алгоритма, 27; 169
Научно-популярное издание
Герб Саттер, Андрей Александреску
Стандарты программирования на C++
Литературный редактор С.Г. Татаренко
Верстка О.В. Мишутина
Художественный редактор Е/Л. Дынник
Корректор Л.А. Гордиенко
Издательский дом "Вильямс". 101509, Москва, ул. Лесная, д. 43, стр. 1.
Подписано в печать 22.07.2005. Формат 70X100/16.
Гарнитура Times. Печать офсетная.
Усл. печ.л. 19,35. Уч.-изд. л. 13,2.
Тираж 3000 экз. Заказ № 2182.
Отпечатано с диапозитивов в ФГУП "Печатный двор"
Министерства РФ по делам печати,
телерадиовещания и средств массовых коммуникаций.
197110, Санкт-Петербург, Чкаловский пр., 15.