|
|
Авторизация |
|
|
Поиск по указателям |
|
|
|
|
|
|
|
|
|
|
Мэйерс С. — Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ |
|
|
Предметный указатель |
Встраивание и виртуальные функции 140
Встраивание и динамическое связывание 143
Встраивание и интерфейсные классы 151
Встраивание и классы-дескрипторы 151
Встраивание и конструкторы/деструкторы 141—143
Встраивание и наследование 142—143
Встраивание и перекомпиляция 143
Встраивание и перекомпоновка 143
Встраивание и разработка библиотек 143
Встраивание и шаблоны 140
Встраивание, момент 140
Встраивание, предполагаемая стратегия встраивания 143
Встроенные типы 29
Встроенные типы, несоответствие 89—90
Встроенные типы, эффективность и передача 97
Встроенные функции см. также «Встраивание»
Встроенные функции и деректива #define 31
Встроенные функции и заголовки 140
Встроенные функции и макросы, сравнение эффективности 31
Встроенные функции и оптимизация компилятором 139
Встроенные функции и отладчики 143
Встроенные функции и рекурсия 140
Встроенные функции, адрес 141
Встроенные функции, декларация 139
Встроенные функции, как запрос к компилятору 139
Вторая редакция см. «2-я редакция»
Вызов базовых классов, приведение 124
Вызов, swap 116
Выравнивание 246—247
Выражения и неявные интерфейсы 202
Высокоуровневое программирование и функциональные объекты, в Boost 266
Вэйт, Джон 14
Гамма, Эрих 11
Гарантии безопасности, относительно исключений 133—134
Гарантия отсутствия исключений 133—134
Геллер, Алан 13
Генерация случайных чисел, в TR1 262
Группировка объектов 248
Гутник, Жене 13
Данные-члены защищенные 104
Данные-члены статические, инициализация 240
Данные-члены, добавление, функции копирования 69
Данные-члены, почему закрытые 102—105
Данные-члены, управление доступом 102
Даштинежад, Сасан 13
Двунаправленные итераторы 226
Демент, Вильям 153
Дескрипторы 130
Дескрипторы висячие 131
Дескрипторы, возврат 128—131
Дескрипторы, инкапсуляция 130—131
Дескрипторы, оператор [] 131
Деструкторы 93
Деструкторы, встраивание 141—142
Деструкторы, исключения 56—60
Деструкторы, отношение к delete 83
Деструкторы, пустые виртуальные 56
Деструкторы, статические функции 63
Деструкторы, управляющие ресурсами объекты 74
Джагдхар, Эмили 13
Джанерт, Филип 13
Джонсон, Ральф 11
Джонсон, Тим 12 13
Джоссутис, Николай М 12
Дизайн классов см. «Дизайн типов»
Дизайн типов 87—94
Динамические типы, определение 183
Динамическое связывание виртуальных функций 180
Динамическое связывание, определение 183
Директива #include 31
Директива #include и зависимости на этапе компиляции 144—145
Доступ к именам в шаблонных базовых классах 207—212
Доступность, имена, множественное наследование и доступность 194
Доступность, управление доступностью членов—данных 102—103
Другие языки, совместимость с 54
Дружественные отношения без необходимости в специальных правах доступа 224
Дружественные отношения в реальной жизни 112
Дублирование и данные базового класса 195
Дублирование и функция init 71
Дублирование, избежание 37—39 42 61 71 166 184 212—216
Дулимов, Питер 13
Дьюхэрст, Стив 11
Дэвис, Тони 12
ЕВО см. «Оптимизация пустых базовых классов»
Единица трансляции, определение 43
Заблуда, Олег 13
Зависимое от реализации поведение, и предупреждения 259
Зависимости на этапе компиляции 144—152
Зависимости на этапе компиляции, минимизация 144—152 191
Зависимости на этапе компиляции, указатели, ссылки и объекты 147
Зависимые имена 204
Заголовочные файлы и встроенные функции 140
Заголовочные файлы и пространства имен 107—108
Заголовочные файлы и шаблоны 140
Заголовочные файлы стандартной библиотеки C++ 108
Заголовочные файлы, объявления и определения 147—148
Закрытое наследование см. «Наследование»
Закрытые виртуальные функции 173
Закрытые данные-члены, почему 102—105
Закрытые функции-члены 51
Замена определений объявлениями 147—148
Замена, new/delete 244—249
Затенение имен см. «Скрытие имен»
Защищенное наследование см. «Наследование»
Защищенные данные-члены 104
Защищенные функции-члены 168
Защищенные члены, инкапсуляция 104—105
Значение отсутствия у класса виртуальных функций 54
Золман, Леор 12 13
Идиома pimpl, безопасный относительно исключений код 136
Идиома pimpl, отделение реализации от интерфейса 113
Избежание дублирования кода 62
Излишние объекты, избежание 121
Изменение порядка операций, компилятором 85—86
Имен затенение см. «Сокрытие имен»
Имена зависимые 204
Имена классов 165
Имена независимые 204
Имена, вложенные зависимые 204
Имена, доступные и в C, и в C++ 19
Имена, скрытые в производных классах 258—259
Имена,доступ к шаблонным базовым 207—211
Инварианты, NVI 173
Инициализация 20 40—41
Инициализация в классе статических константных членов интегральных типов 29
Инициализация встроенных типов 42
Инициализация и виртуальные базовые Инициализация, классы 195
Инициализация и присваивание 21
Инициализация константных статических членов 29
Инициализация константных членов 42
Инициализация локальных статических объектов 45
Инициализация не локальных Инициализация статических объектов 44—45
Инициализация объектов 40—46
Инициализация по умолчанию непреднамеренная 70
Инициализация по умолчанию, нежелательность 70
Инициализация с аргументами и без 119—120
Инициализация ссылок на члены 42
Инициализация статических членов 240
Инкапсуляция 103 106
Инкапсуляция и дескрипторы 130
Инкапсуляция и защищенные члены 104—105
Инкапсуляция и классы RAII 82
Инкапсуляция и паттерны проектирования 175
Инкапсуляция и приведения 128
Инкапсуляция, степень 106
Инструкции, изменение порядка компилятором 85—86
Интеллектуальные указатели 73 74—75 79 90 126 140 236 см.
Интеллектуальные указатели, get 80
Интеллектуальные указатели, Web-страница для 11
Интеллектуальные указатели, в Boost 76 267
| Интеллектуальные указатели, в TR1 259—264
Интеллектуальные указатели, объекты, выделенные new 85—86
Интеллектуальные указатели, преобразования типов 217—221
Интернационализация, поддержка библиотеки для 260
Интерфейсные классы 149—152
Интерфейсы и выражения 202
Интерфейсы и новые типы 88
Интерфейсы и параметры шаблонов 201—203
Интерфейсы необъявленные 94
Интерфейсы неявные 200—203
Интерфейсы явные, сигнатуры 202
Интерфейсы, извлечение из реализации 165
Интерфейсы, наследование 164—171
Интерфейсы, определение 22—23
Интерфейсы, отделение от реализации 145
Интерфейсы, рассмотрение использования 87—92
Исключения 119
Исключения, delete 73
Исключения, деструкторы 56—60
Исключения, неиспользуемые объекты 120
Исключения, стандартная иерархия 260
Исключения, член swap 118
Исключения, «проглатывание» 58
Использование регистров, и объекты 97
Итераторы ввода 226
Итераторы вывода 226
Итераторы как дескрипторы 130
Итераторы с произвольным доступом 226
Каи, Стив 13
Какулапати, Гунавардан 13
Каленкович, Евгений 13
Карарра, Энрико 13
Карджилл, Том 12
Каролл, Гленн 12
Категории итераторов 226
Квадраты и прямоугольники 157—158
Кеннеди, Гленн 13
Керниган, Брайан 13
Кимура, Юничи 13
Кирман, Жак 12
Класс, final из Java 55
Класс, sealed, в C# 55
Класс, Widget, использование в этой книге 24
Классы см. также «Определения классов интерфейсы»
Классы абстрактные 55 164
Классы базовые виртуальные 194
Классы базовые полиморфные 56
Классы базовые шаблонные 207—212
Классы базовые, дублирование данных 195
Классы характеристические 225—231
Классы, RAII см. «RAII»
Классы, дескрипторы 195
Классы, интерфейсные 149
Классы, определение 19
Классы, производные см. также «Наследование»
Классы, производные базовой инициализации от виртуального класса 165
Классы, смысл отсутствия виртуальных функций 54
Классы, спецификации см. «Интерфейсы»
Клемедж, Стив 12
Клиент 23
Кнокс, Тимоти 12 13
Код некорректный, эффективность 97—98
Код, безопасный относительно исключений 132—139
Код, дублирование см. «Дублирование»
Код, использование существующих компонентов 196
Код, оператор присваивания копированием 71
Код, разделение см. «Дублирование как
Код, раздувание 37 139 229
Код, раздувание, как избежать в шаблонах 212—217
Код, размещение вне шаблона 212—217
Комеу, Грег 12
Комеу, Грег, URL для его C/C++, FAQ 12
Компилятора предупреждения 258—259
Компилятора предупреждения, встраивание 141
Компилятора предупреждения, вызовы виртуальных функций 62
Компилятора предупреждения, частичные копии 69
Компиляторы, typename 207
Компиляторы, изменение порядка операций 85
Компиляторы, использование регистров 97
Компиляторы, когда диагностируются ошибки 212
Компиляторы, программы, исполняемые внутри см. «Метапрограммирование шаблонов»
Компиляторы, разбор вложенных зависимых имен 205
Композиция 185—187
Композиция и закрытое наследование 189
Композиция, замена закрытого наследования на 190
Композиция, значение слова 185
Композиция, синонимы для 185
Константность 28 31—40
Константность и деректива #define 28—29
Константность логическая 36
Константность побитовая 35
Константность, возвращаемые значения 33
Константность, дублирование 38—39
Константность, исключение приведения 39
Константность, кэширование 36
Константность, объявления функций 33
Константность, перегрузка 34
Константность, передача std::auto_ptr 220
Константность, передача по ссылке на 94—98
Константность, применения 32
Константность, указатели 32
Константность, функции-члены 33—39
Константность, члены, инициализация 42
Константы см. «Константность»
Конструкторы 93
Конструкторы виртуальные 149 150
Конструкторы копирования 21
Конструкторы копирования, как используются 21
Конструкторы копирования, неявно сгенерированные 47
Конструкторы копирования, обобщенные 219
Конструкторы копирования, определение по умолчанию 48
Конструкторы копирования, передача по значению 21
Конструкторы копирования, производные классы 70
Конструкторы по умолчанию 20
Конструкторы пустые, иллюзия 141—142
Конструкторы, explicit 20—21 93 111
Конструкторы, виртуальные функции 60—63
Конструкторы, возможные реализации в производных классах 143
Конструкторы, встраивание 141—143
Конструкторы, неявно сгенерированные 45 47
Конструкторы, оператор new 142
Конструкторы, отношение к new 83
Конструкторы, с аргументами 120
Контейнеры, в Boost 266
Концептуальная константность см. «Константность логическая»
Копии, частичные 70
Копирование и обмен, безопасный отностительно исключений код 136
Копирование и обмен, присваивание 67
Копирование классов, управляющих ресурсами 76—79
Копирование объектов 68—71
Копирование функции 68
Копирование частей базовых классов 70
Корректность дизайна интерфейсов 87—92
Корректность единиц измерения, и ТМР 235
Корректность, тестирование, поддержка Boost 267
Кортежи в TR1 262
Коуронис, Дросос 13
Кохен, Джейк 13
Коэлблинг, Майк 12
Креузер, Герхард 13
Кримс, Эндрю 13
Курьезный рекурсивный шаблонный паттерн 243
Кэширование, const 36
Кэширование, mutable 37
Ланджер, Анжелика 13
Ланцетта, Майкл 13
Лачли, Джесси 13
Левандовский, Скотт 13
Лежтер, Моисей 12 14
Лери-Коути, Чанда 14
|
|
|
Реклама |
|
|
|