|
|
Авторизация |
|
|
Поиск по указателям |
|
|
|
|
|
|
|
|
|
|
Мэйерс С. — Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ |
|
|
Предметный указатель |
Ли, Грег 13
Ли, Дуг 12
Ли, Сэм 13
Логические константные функции-члены 36
Локальные статические объекты, инициализация 45
Локальные статические объекты, определение 43
Манис, Винсент 13
Мартин, Алекс 13
Массив, неправильный индекс 22
Математика, и наследование 158
Математические и числовые утилиты в Boost 267
Математические функции в TR1 262
Межъязыковая поддержка, в Boost 267
Мейерс, Скотт, Web-сайт 16
Мейерс, Скотт, список рассылки 16
Месть компиляторов 69
Метапрограммирование шаблонов 231—236
Метапрограммирование шаблонов, поддержка в Boost 266—267
Метапрограммирование шаблонов, поддержка в TR1 262—263
Метапрограммирование шаблонов, реализации паттернов 236
Метапрограммирование шаблонов, эффективность 232
Метапрограммирование шаблонов, «Hello World» 234
Метод шаблонный 172—173
Метод, final из Java 191
Метод, sealed, в C# 191
Мидовбрук, Криста 14
Микельсен, Дениз 14
Минимизация зависимостей на этапе компиляции 144—152
Миттал, Нишант 13
Михаелс, Лаура 13
Михан, Джим 13
Многопоточность, не константные статические объекты 46
Многопоточность, процедуры управления памятью 237 250
Многопоточность, трактовка в этой книге 24
Множественное наследование см. «Наследование»
Модель «реализовано посредством» 185—187
Модификация возвращаемых функциями значений 35
Морофф, Хал 13
Мур, Ванесса 14
Мьютексы, и RAII 77—78
Мэтьюс, Леон 13
Наглер, Эрик 12 13
Назначение закрытого наследования 188
Назначение композиции 185
Назначение не-виртуальных функций 170
Назначение обычных виртуальных функций 165
Назначение открытого наследования 154
Назначение передачи по значению 21—22
Назначение ссылок 98—99
Назначение чисто виртуальных функций 165
Наследование закрытое 188—193 214
Наследование закрытое и композиция 189
Наследование закрытое, для переопределения виртуальных функций 198
Наследование закрытое, значение 188
Наследование закрытое, избежание 190
Наследование закрытое, комбинированное с открытым 198
Наследование защищенное 155
Наследование и математика 158
Наследование интерфейса 164—171
Наследование интерфейса и реализации 164—171
Наследование комбинированное с шаблонами 242
Наследование множественное 193—199
Наследование множественное, комбинированное открытое и закрытое 198
Наследование множественное, неоднозначность 193
Наследование множественное, ромбовидное 194
Наследование открытое 153—159
Наследование открытое, виртуальное 195
Наследование открытое, комбинированное с закрытым 198
Наследование открытое, отношение «является» 154—159
Наследование открытое, семантика 154
Наследование открытое, сокрытие имен 162
Наследование разделение средств 167
Наследование реализации 164—171
Наследование случайное 168
Наследование смешанного стиля 242
Наследование, интуиция 155—158
Наследование, области видимости 159
Наследование, общие свойства 166
Наследование, оператор new 250—251
Наследование, переопределение не-виртуальных функций 179—181
Наследование, пингвины 155—157
Наследование, прямоугольники, Наследование, квадраты 157—158
Наследование, сокрытие имен 159—163
Наурот, Крис 13
Нахил, Джулия 14
Не-виртуальные идиомы интерфейса см. «NVI»
Не-виртуальные функции 179—181
Не-виртуальные функции, статическое связывание 180
Неверный индекс массива, неопределенное поведение 22
Независимые имена 204
Неинициализированные данные-члены, и виртуальные функции 61
Неинициализированные значения, чтение 40
Неиспользуемые объекты, затраты на 119
Неиспользуемые объекты, исключения 120
Некорректный код и эффективность 98
Нелокальные статические объекты, инициализация 43
Необъявленный интерфейс 94
Неоднозначность, вложенные зависимые имена и типы 205
Неоднозначность, множественное наследование и неоднозначность 193
Неопределенное поведение, advance 230
Неопределенное поведение, исключения 57
Неопределенное поведение, использование более чем одного delete 73 244
Неопределенное поведение, неверный индекс массива 22
Неопределенное поведение, неинициализированные значения 40
Неопределенное поведение, нулевые указатели 22
Неопределенное поведение, определение 22
Неопределенное поведение, порядок инициализации 43—44
Неопределенное поведение, приведение + арифметика указателей 124
Неопределенное поведение, разрушенные объекты 99
Неопределенное поведение, удаление массивов 83
Неопределенное поведение, удаление объектов 53 55 84
Неопределенные значения членов перед конструированием и после уничтожения 61—62
Несоответствие с поведением встроенных типов 89
Неявно сгенерированные функции 47—50 220
Неявно сгенерированные функции, запрет 50—52
Неявные встроенные запросы 139
Неявные интерфейсы 200—203
Новые типы и проектирование интерфейса 88
Нулевой указатель, set_new_handler 239
Нулевой указатель, разыменование 22
Нулевой указатель, удаление 251
Нэнси см. «Урбано Нэнси
Области видимости и наследование 159
Обобщенное присваивание 219
Обобщенные конструкторы копирования 219
Обработчик new 238—244
Обработчик new, деинсталляция 239
Обработчик new, идентификация 250
Обработчик new, определение 238
Общие свойства и наследование 166
Объектно-ориентированные принципы, и инкапсуляция 106
Объектно-ориентированный C++, как подъязык C++ 27
Объекты, возвращает ссылки 98—102
Объекты, выравнивание 246—247
Объекты, группировка 248
Объекты, дескрипторы внутренних 128—131
Объекты, зависимости на этапе компиляции 147—148
Объекты, и переменные 19
Объекты, инициализация с аргументами и без 120
Объекты, копирование всех частей 68—71
Объекты, множество адресов 124
Объекты, объявление, откладывание 119—122
Объекты, определение 19
Объекты, определение размеров 145—146
Объекты, размер, передача по значению 97—98
Объекты, размещающий new, и интеллектуальные указатели 85—86
Объекты, размещение в разделяемой памяти 248
Объекты, схема распределения памяти для массивов 83
Объекты, управление ресурсами 72—76
Объекты, частичное копирование 69
| Объявления 18—19
Объявления виртуальные и оператор delete 252
Объявления виртуальные и полиморфные базовые классы 52—56
Объявления виртуальные и функции 60—63
Объявления функций, const 33
Объявления, using и поиск имен 210—211
Объявления, using и сокрытие имен 162
Объявления, встроенных функций 140
Объявления, статических константных встроенных членов 29
Ограничения интерфейсов, при наследовании 93
Однонаправленные итераторы 226
Олдхам, Джефри Д. 13
Оператор DELETE 93 см.
Оператор delete, виртуальные деструкторы 252
Оператор delete, замена 244—249
Оператор delete, не-члены, псевдокод для 251
Оператор delete, поведение 251—252
Оператор delete, размещение 252—257
Оператор delete, сокрытие имен 256—257
Оператор delete, стандартные формы 256—257
Оператор delete, эффективность 245
Оператор delete[] 93
Оператор new 93 см.
Оператор new, bad_alloc 243 249
Оператор new, std::bad_alloc 243 249
Оператор new, бесконечный цикл внутри 250
Оператор new, возврат 0 243
Оператор new, замена 244—249
Оператор new, массивы 251
Оператор new, наследование 250—251
Оператор new, не-члены, псевдокод для 249
Оператор new, поведение 249—251
Оператор new, размещающий 252—257
Оператор new, сокрытие имен 255—256
Оператор new, стандартные формы 256—257
Оператор new, условия недостатка памяти 238—239 249—250
Оператор new, функции-обработчики new 238
Оператор new, член и запросы неверного размера 251
Оператор new, эффективность 245
Оператор new[] 93 251
Оператор присваивания, код в конструкторах копирования 71
Оператор присваивания, копирование 21
Оператор присваивания, производные классы 70
Операции с матрицами, оптимизация 235—236
Операции, изменение порядка компиляторами 85
Опережающие функции 148
Описатели типов, в TR1 262—263
Определения 19
Определения классов 19
Определения классов, исключение неестественной зависимости клиента от определений типов 147
Определения классов, объявление класса, против 147
Определения классов, размеры объектов 145—146
Определения неявно сгенерированных функций 48
Определения объектов 19
Определения переменных, откладывание 119—122
Определения сознательное исключение 51
Определения статических константных встроенных членов 29
Определения функций 19
Определения чисто виртуальных функций 165 169
Определения шаблонов 19
Определения, замена объявлениями 147
Оптимизация компиляторами 101—102
Оптимизация пустых базовых классов (EBO) 192
Оптимизация, logic_error 119
Оптимизация, во время компиляции 139
Оптимизация, встроенные функции 139
Оптимизация, организация заголовков 108
Оптимизация, шаблон list 187
Оптимизация, шаблон set 187
Оптимизация, шаблон vector 84
Открытое наследование см. «Наследование»
Отладчики, #define 28
Отладчики, встроенные функции 143
Отложенное объявление переменных 119—122
Отношение «реализован посредством» 185—186 188
Отношение «содержит» 185
Отношение «является» 153—159
Ошибки в книге, сообщения о них 16
Ошибки времени исполнения 156
Ошибки времени компоновки 51 56
Пал, Балог 13
Параметры см. также «Передача по значению передача передача
Параметры, не являющиеся типами 213
Параметры, не являющиеся типами, для шаблонов 213
Параметры, по умолчанию 181—185
Параметры, по умолчанию, влияние измененных 184
Параметры, по умолчанию, статическое связывание 182
Параметры, порядок вычисления 85—86
Параметры, преобразования типа см. «Преобразования типа»
Паттерны проектирования, генерация из шаблонов 236
Паттерны проектирования, инкапсуляция 175
Паттерны проектирования, курьезные рекурсивные шаблонные (CRTP) 243
Паттерны проектирования, раздельное размещение (Singleton) 45
Паттерны проектирования, Стратегия 173—179
Паттерны проектирования, ТМР 236
Паттерны проектирования, Шаблонный метод 172—173
Педерсен, Роджер П. 13
Перегрузка, std::swap 115
Перегрузка, как if...else для типов 229
Перегрузка, константность 34
Передача владения 79
Передача по значению 21—22
Передача по значению и передача по ссылке на const 94—98
Передача по значению, конструкторы копирования 21—22
Передача по значению, размеры объекта 97
Передача по значению, эффективность 94—95
Переменные и объекты 19
Переопределение унаследованных не виртуальных функций 179—181
Пессимизация 101
Побочные эффекты, и безопасность исключений 137
Поврежденные структуры данных, безопасный относительно исключений код 132
Повторное использование см. «Повторное использование кода»
Поддержка обобщенного программирования в Boost 266
Позднее связывание 182
Поиск имен, this 210 214
Поиск имен, объявление using 210—211
Полиморфизм 200—202
Полиморфизм времени исполнения 202
Полиморфизм времени компиляции 202
Полиморфные базовые классы, деструкторы 52—56
Полная специализация, std::swap 115
Полная специализация, шаблона 114
Полная специализация, шаблонного класса 209
Получение Ресурса Есть Инициализация см. «RAII»
Порядок инициализации не-локальных статических объектов 43—46
Порядок инициализации членов класса 43
Порядок инициализации, важность 43
Пошаговая инструкция встраивания 143
Правило 80—20 143 170—171
Прасерцит, Чути 14
Предварительные условия, NVI 173
Предупреждения компилятора 258—259
Предупреждения компилятора, встраивание 141
Предупреждения компилятора, вызовы виртуальных функций 62
Предупреждения компилятора, частичное копирование 69
Преобразование типов 93—94 111
Преобразование типов, explicit—конструкторы 20—21
Преобразование типов, закрытое наследование 188
Преобразование типов, интеллектуальные указатели 217—221
Преобразование типов, функции не-члены 109—112 221—225
Преобразование типов, шаблоны 221—225
Преобразование типов, явная и неявная 80—82
Преобразование типов, явное 111
Приведения 122—128 см. «static_cast» «dynamic_cast»
Приведения в новом стиле 122
Приведения в старом стиле 122
Приведения в стиле C 122
Приведения, grep 123
Приведения, вызовы базовых классов 124
Приведения, неопределенное поведение 122
|
|
|
Реклама |
|
|
|