<< Пред.           стр. 118 (из 121)           След. >>

Список литературы по разделу

 взятия индекса ([]), 736
 вопросы проектирования, 728–30
 вызова функции (()), 736–38
 вызова функции для объектов-функций, 567
 декремента (--), 740–44
 доступа к членам (->), 738–40
 имена, 727–28
 инкремента (++), 740–44
 объявленные как друзья, 730–33
 присваивания (=), 733–35
 с параметрами-ссылками, преимущества, 335
 члены и не-члены класса, 723–27
 определения, 15
 typedef, 126
 базового класса, 871–75
 иерархии классов, 862–69
 исключений, как иерархий классов, 1013–14
 класса, 594–601
 сравнение с определением класса, 600–601
 класса-диспетчера запросов (пример), 934–39
 массива, 113
 многомерных массивов, 116
 множеств, 304–6
 недопустимость размещения в заголовочном файле, 385
 объекта, 382
 объектов класса bitset, 169
 объектов класса complex, 125
 последовательных контейнеров, 256–61
 производного класса, 876–78
 пространств имен, 406–20
 членов, 415–17
 сравнение с объявлениями, 381–83
 функции
 и локальная область видимости, 378
 как часть шаблона функции, 477
 шаблона класса, 791–800
 разрешение имен в, 844–46
 опции
 в командной строке, 356–65
 отображения, 292–309
 map, заголовочный файл, 293
 заполнение, 293
 невозможность переупорядочения, 587
 недопустимость использования итераторов с произвольным доступом, 583
 сравнение с множествами, 292
 текста
 заполнение, 292–98
 определение, 292–98
 отрицатели
 как адапторы функций, 573
 очереди, 315–16
 queue, заголовочный файл, 315
 size(), 315
 top(), функция, 316
 очереди с приоритетами, 315, 316
 очередь с приоритетами, 315
 size(), 315
 top(), функция, 316
 ошибки
 assert(), макрос, 226
 бесконечная рекурсия, 351
 в инструкции if, 193
 в циклах, 197
 зацикливание, 93
 висячие указатели, 389
 как избежать, 394
 динамического выделения памяти, 395
 итератор, использование, 226
 компиляции, конфликты в области видимости using-объявления, 437
 массив
 индекс за концом, 94
 области видимости, подводные камни using-директивы, 426
 оператор присваивания вместо оператора равенства, 100
 порядка вычисления подвыражений, 142
 проблема висячего else, 195
 проблемы константных ссылок и указателей, 106
 проблемы побитовых операторов, 166
 проблемы, связанные с глобальными объектами, 349
 пропуска
 завершающего нуля в C-строке, 402
 скобок при освобождении динамически выделенного массива, 402
 редактора связей
 повторные определения, 386
 смещения на единицу при доступе к массиву, 31
 фазы связывания при наличии объявления в нескольких файлах, 383
 Ошибки
 конкретизации шаблона функции, 484
 П
 память
 утечка, 35
 параметр(ы)
 объявление, сравнение с объявлением исключений, 540
 размер, важность для передачи по значению, 327
 списки параметров
 переменной длины, многоточие, 343
 различия перегруженных функций, 431
 ссылочные, 329–33
 влияние на преобразования при разрешении перегрузки функции, 457
 преимущества эффективности, 330, 540
 ранжирование, 471
 сравнение с параметрами-указателями, 333–35
 шаблона
 использование указателей на константы, 101
 не являюшиеся типами, 476
 являюшиеся типами, проверка, 325–26
 параметры функций
 аргументы по умолчаниюю, 340–43
 использования многоточия, 343–44
 массивы, 335–39
 при разрешении перегруженных функций, 430
 проверка типов, 325–26
 списки параметров, 325
 сравнение параметров указательного и ссылочного типов, 333–35
 сравнение с глобальными объектами, 349–50
 ссылки, 107, 329–33
 использование для возврата нескольких значений, 197
 на константы, 331
 преимущества в эффективности, 330
 сравнение с параметрами-указателями, 333–35
 тип возвращаемого значения
 тип pair, 197
 указатели, 329
 указатели на функции, 370–73
 переменные
 глобальные параметры и возвращаемые значения, 349–50
 константные, 100
 объявление как член пространства имен, 408
 переносимость
 знак остатка, 143
 перестановки, обобщенные алгоритмы, 589
 перечисления, 110–13
 основания для включения в язык, 110
 расширение типа при разрешении перегрузки функции, 452
 точное соответствие при разрешении перегрузки функции, 445
 по умолчанию
 аргументы, 340–43
 и виртуальные функции, 910–13
 влияние на выбор устоявших функций, 472
 и устоявшие функции, 472–73
 конструктор, см. конструктор, 678–79
 побитовый(е)
 оператор И (&), 164
 оператор И с присваиванием (&=), 152, 164
 оператор ИЛИ (!), 165
 оператор ИСКЛЮЧАЮЩЕЕ ИЛИ (^), 165
 оператор НЕ (~), 164
 оператор сдвига (<<,>>), 165
 операторы, 164–66
 поддержка в классе bitset, 170
 повторное возбуждение
 исключения, 542–43
 позиция
 разрешение аргумента по позиции в списке, 341
 поиск
 rfind(), 278
 подстрок, 280
 элементов
 множества, 306
 отображения текста, 298–99
 ПОО (правило одного определения), 382, 416–18
 последовательные контейнеры, 248–319
 вставка элементов, 265
 критерии выбора, 252
 обобщенные алгоритмы, 269–70
 определение, 256
 перестановка элементов, 269
 присваивание, 268
 удаление элементов, 267
 предостережения
 использование знакового бита в битовых векторах, 166
 неопределенность порядка вычисления бинарных операторов сравнения, 147
 опасности приведения типов, 178
 подводные камни
 using-директивы, 426
 возврата l-значение, 348
 возврата ссылки на объект, 348
 глобальные объекты, 349
 приведения типов, 181
 шаблона класса auto_ptr, 399
 представление
 влияние на расширение типа перечисления, 452
 информация о реализации в заголовочном файле limits, 145
 строк, 92
 целых чисел, 143
 преобразование
 bool в int, 109
 l-значения в r-значение, 446–47
 арифметическое, 177–78
 бинарного объекта-функции в унарный, использование адаптора-связывателя, 573
 выбор преобразования между типами классов, 764–76
 выведение аргументов шаблона функции, 486
 как точное соответствие при разрешении перегрузки функции, 459
 квалификаторов
 влияние на последовательность преобразований, 470
 при выведении аргументов шаблона функции, 487
 ранжирование при разрешении перегрузки функции, 470
 конверторы, 445
 конструкторы
 конструкторы как конверторы, 761–64
 множественные, разрешение неоднозначности приведения, 468
 недопустимость преобразований между типами указателей на функции, 439
 неявные преобразования типов, 176
 определенное пользователем, 445
 последовательности
 определенных пользователем преобразований, 764–67
 определенных пользователем, ранжирование при разрешении перегрузки функций, 771–76
 определенных пользователем, с учетом наследования, 1034–36
 стандартных преобразований, 468–72
 ранжирование инициализации ссылок при разрешении перегрузки функции, 457
 расширения типа, 175
 аргументов, 451–53
 типа перечисления в арифметические типы, 112
 с потерей точности, предупреждение компилятора, 326
 стандартное, 453–57
 типа аргумента, 444–60
 трансформации l-значений, 450
 трансформация I-значений
 преобразования при выведении аргументов шаблона функции, 486
 трансформация I-значения
 ранжирование при разрешении перегрузки функции, 468
 указателей
 в тип void* и обратно, 179
 преобразования квалификаторов, 449
 стандартные преобразования указателей, 456
 трансформации l-значений, массива в указатель, 448
 трансформации l-значений, функции в указатель, 448
 явные преобразования типов, 144, 175, 178
 препроцессор
 комментарий
 парный(/**/), 25
 константы
 __cplusplus__, 23
 макросы
 шаблоны функций как более безопасная альтернатива, 474
 предкомпилированные заголовочные файлы, 385
 приведение(я), 144
 const_cast, оператор, опасность применения,, 180
 dynamic_cast (), оператор, 1001–7
 dynamic_cast()
 идентификация класса объекта во время выполнения, 182
 reinterpret_cast
 опасности, 181
 reinterpret_cast, оператор, 181
 static_cast
 сравнение с неявными преобразованиями, 180
 static_cast, оператор, 181
 выбор конкретизируемого шаблона функции, 485
 для принудительного установления точного соответствия, 450
 опасности, 181
 сравнение нового синтаксиса со старым, 182
 старый синтаксис, 182–83
 применение для подавления оптимизации, 127
 примеры
 класс IntArray, 45
 IntSortedArray, производный класс, 54
 класс iStack, 183–87
 поддержка динамического выделения памяти, 316–17
 преобразование в шаблон stack, 318–19
 класс String, 128–39
 класс связанного списка, 221–47
 обработка аргументов в командной строке, 356–57
 система текстового поиска
 (глава 6), 248–319
 функция sort, 365
 шаблон класса Array, 55–62, 849–57
 SortedArray, производный класс, 993–98
 примитивные типы
 (глава), 98–139
 присваивание
 векторам, сравнение с встроенными массивами, 122
 и поведение auto_ptr, 397
 комплексных чисел, 155
 массиву, недопустимость присваивания другого массива, 115
 оператор
 и требования к l-значению, 81
 перегруженный, 709–12, 733–35
 составной, 152
 последовательному контейнеру, 268–69
 почленное для объектов класса, 709–12
 ссылке, 107
 указателю на функцию, 367
 вопросы, связанные с перегруженностью функции, 439
 проверка
 выхода за границы диапазона, 289
 не выолняется для массивов, 116
 типа
 назначение и опасности приведения типов, 182
 неявные преобразования, 326
 объявления, разнесенного по нескольким файлам, 384
 отмена с помощью многоточия в списке параметров, 343
 параметра, 325–27
 сохранения в шаблоне функции, 476
 указателя, 88
 программа, 14–21
 производительность
 auto_ptr, 397
 классы, локальность ссылок, 191
 компиляции
 зависимость от размера заголовочного файла, 385
 при конкретизации шаблонов функций, 497

<< Пред.           стр. 118 (из 121)           След. >>

Список литературы по разделу