<< Пред. стр. 117 (из 121) След. >>
вызовы виртуальных функций в, 923–25для базовых классов, 899
почленная инициализация, 925–30
при виртуальном наследовании, 974–82
при единичном наследовании, 896
при множественном наследовании, 950–51
для элементов массива
список инициализации массива, 689–91
и функциональные try-блоки, 1024–26
как коверторы, 761–64
конструкторы по умолчанию, 678–79
для элементов вектора, 694–96
копирующие конструкторы, 237, 680–82
почленная инициализация, 703–9, 925–30
ограничение возможности созданий объектов, 680
список инициализации членов, 696–703
контейнерные типы
определение, 256–61
контейнерные типы, 248–301
вопросы выделения памяти при копировании, 577
емкость, 253
связь с размером, 253–58
и итераторы, 261–65
инициализация, с помощью пары итераторов, 263
очереди с приоритетами, 315
параметры, 338–40, 350
преимущества, автоматическое управление памятью, 402
размер, 258
связь с емкостью, 253–56
требования к типам, с которыми конкретизируется контейнер, 259
копирование
вопросы выделения памяти, 577
использование ссылок для избежания, 330
как операция инициализации, 258
массивов, 115
сравнение со стоимостью произвольного доступа, 252
строк, 96
копирующий
конструктор, 43, 131
для динамического увеличения размера вектора, 255
оператор присваивания, реализация, 237
Л
лексикографическое упорядочение, 289
в обобщенных алгоритмах перестановок, 586
в обобщенныых алгоритмах сравнения, 586
при сортировке строк, 366–75
литеральные константы, 76–78
C-строки
сравнение с символьными литералами, 114
f суффикс, 77
U суффикс, 76
с плавающей точкой, 77
логические встроенные операторы, 145–48
оператор ИЛИ (||), 146
оператор НЕ (!), 147
логические объекты-функции
logical_and, 572
logical_not, 572
logical_or, 572
локализация
влияние глобального объекта на, 349
константной переменной или объекта, 100
локальность объявления, 190, 385
на уровне файла, использование безымянного пространства имен, 419
локальная область видимости, 376, 378–81
try-блок, 535
доступ к членам в глобальной области видимости, скрытым за локальными объектами, 411
имена в пространстве имен, скрытые за локальными объектами, 414
переменная, неинициализированная, 388
разрешение имени, 379
локальные объекты, 388–92
проблема возврата ссылки на, 348
статические, 388, 390–92
М
массив(ы), 113–20
в сравнении с векторами, 122
динамическое выделение и освобождение, 400–402
массивов объектов классов, 691–94, 744–53
индексирование, 31, 113–16
многомерных массивов, 116–17
отсутствие контроля выхода за границы диапазона, 116
инициализация, 31, 114–15
динамически выделенных массивов, 400
динамически выделенных массивов объектов класса, 690–94
многомерных массивов, 116–17
недопустимость инициализации другим массивом, 115
использование оператора sizeof(), 159
как параметры функций, 335–39
для передачи нескольких параметров, 350
многомерные, 338
преобразование массива в указатель, 448
многомерные, 116–17
недопустимость использования auto_ptr, 395
недопустимость использования в качестве возвращаемого значения функции, 324
недопустимость присваивания другому массиву, 115
недопустимость ссылок на массив, 115
обход
с помощью манипуляции указателем, 118
с помощью пары итераторов, 263–64
объектов класса, 689–96
определение, 30, 113
перегруженный оператор
delete[], 749–51
new[], 749–51
поддержка обобщенными алгоритмами, 553
размер, не является частью типа параметра, 335
связь с типом указателей, 118–20
указателей на функции, 369–70
меньше, оператор
поддержка в арифметических типах данных, 30
требование о поддержке типом элементов контейнера, 259
минус(-)
для выделения опций в командной строке, 357
многоточие (...), 343–44
использование в типах функций, 367
множество (set), контейнерный тип
set, заголовочный файл, 304
size(), 307
обход, 306–7
ограничение на изменение порядка, 587
определени, 304–6
поиск элементов, 306
сравнение с отображением, 292
модели компиляции
с разделением, 834–37
шаблонов класса
с включением, 833
с разделением, 834–36
шаблонов классов, 831–38
шаблонов функций, 494–98
с включением, 494–95
с разделением, 495–97
Н
наилучшая из устоявших функций, 442
неинициализированный
автоматический объект, 388
глобальный объект, 382
локальный статический объект, 391
неоднозначность
перегруженных
функций, диагносцирование во время разрешения перегрузки, 454
указателя, стандартные преобразования, 456
шаблона функции
аргумента, разрешение с помощью явной спецификации, 492
конкретизации, ошибка, 484
конкретизация, опасность перегрузки, 505
неявные преобразования типов, 176
новая строка ()
как escape-последовательность, 77
О
область видимости, 376–81
видимость класса, 645–52
и определение класса, 594
разрешение имен в, 649–52
глобальная область видимости, 376
и время жизни (глава), 376–428
и перегрузка, 434–38
локальная область видимости, 378–81
обращение к скрытым членам глобальной области видимости, 411
разрешение имен в, 379
объявлений исключений в catch-обработчиках, 540
параметра шаблона
функции, 478–81
пространства имен, 376
управляющих переменных в инструкции for, 379
область видимости глобального пространства имен, 376, 406
доступ к скрытым членам с помощью оператора разрешения области видимости, 411
обобщенные алгоритмы
(глава), 552–92
algorithm, заголовочный файл, 584
numeric, заголовочный файл, 584
алфавитный указатель (приложение), 1103–94
генерирования, 586
использование итераторов, 575–83
категории и описания, 583–87
когда не надо использовать, 587–92
модификации, 586
независимость от типа, 552, 553
нотация для диапазона элементов, 583
обзор, 552–56
объекты-функции как аргументы, 567
использование предопределенных объектов-функций, 569
перестановки, 586
подстановки, 585
пример использования, 556–66
работа с хипом, 587
сравнения, 586
удаления, 585
численные, 586
обработка исключений
bad_alloc, исключение нехватки памяти, 393
обратная косая черта (
как escape-символ, 280
как префикс escape-последовательности, 77
обратные итераторы, 578
обход
заполнение множества с помощью, 305
использование с контейнерами multimap и multiset, 309
множества, 306–7
невозможность обхода перечислений, 112
обход отображения, 303
отображения текста на вектор позиций, 298–301
параллельный обход двух векторов, 296
объединение
разновидность класса, 638–43
объект(ы)
автоматические, 388–89
объявление с ключевым словом register, 389–90
глобальные
и функции, 381–87
сравнение с параметрами и возвращаемыми значениями функций, 349–50
использование памяти, 82
локальные, 388–92
определение, 87
переменные как, 81
члены пространства имен, 407–8
объектное программирование, 593
объектно-ориентированное программирование
проектирование
(пример), 46–55
объекты-функции, 566–75
functional, заголовочный файл, 568
арифметические, 570
использование в обобщенных алгоритмах, 552
источники, 568
логические, 572
предопределенные, 568–70
преимущества по сравнению с указателями на функции, 567
реализация, 573–75
сравнительные, 571
Объекты-функции
адапторы функций для, 573
объявление
инструкция, 14
объявления
базового класса, виртуальное, 976–78
в части инициализации цикла for, 210
видимость имени, вводимого объявлением, 376
друзей, в шаблоне класса, 815–21
и определение, 382–83
инструкция, 189–92
исключения, 538
класса bitset, 167
объектов, 169
класса, сравнение с определением, 600–601
локальность, 190
перегруженное
оператора, 131
функции, 429
пространства имен, 407
сопоставление объявлений в разных файлах, 383
указателя на функцию, 366
включение спецификации исключений в, 548
функции, 322
задание аргументов по умолчанию, 341
как часть шаблона функции, 477
размещение в заголовочном файле, 385
функции-члена, перегруженное, 776–78
шаблона функции
определение используемых имен, 516
связь с определением, 515
требования к размещению явных объявлений конкретизации, 497
явная специализация, 499
явной конкретизации
шаблона класса, 837–38
шаблона функции, 497–98
одиночная кавычка (_)
как escape-последовательность, 77
однонаправленный итератор, 583
оператор "меньше"
характеристики и синтаксис, 146
оператор ввода, 27
оператор вывода, 1045
перегрузка, 1069. См. cout. См. cout
оператор вызова функции, 736–38
операторы
встроенные
(глава), 141–87, 141–87
sizeof, 159–62
арифметические, 142–45
бинарные, 141
декремента (--), 153–54
доступа к членам класса (. и ->), 607–8
запятая, 163
инкремента (++), 153–54
логические, 145–48
побитовые, 164–66
приоритеты, 171–74
равенства, 145–48
разрешения области видимости (
), 410–12
составного присваивания, 152
сравнения, 145–48
перегруженные
delete, 744–49
delete(), размещения, 751–53
delete[], 749–51
new, 744–49
new(), размещения, 751–53
new[], 749–51