Стандарты программирования на С++

       

Предметный указатель


#

#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.


Содержание раздела