<< Пред. стр. 119 (из 121) След. >>
контейнеровемкость, 255
компромиссы при выборе контейнера, 252
сравнение списка и вектора, 254
определения шаблона функции в заголовочном файле, 495
сравнение обработки исключений и вызовов функций, 550
ссылок
объявление исключений в catch-обработчиках, 540
параметры, 330
параметры и типы возвращаемых значений, 389
указателей на функции
проигрыш по сравнению с параметрами-ссылками, 540
проигрыш по сравнению со встроенными функциями, 559
сравнение с объектами-функциями, 567
функций
вопросы, связанные с возвращаемыми значениями, 324
накладные расходы на вызов рекурсивных функций, 351
недостатки, 352
передачи аргументов по значению, 328
преимущества встроенных функций, 133
производные классы
деструкторы, 896–99
конструирование, 889–96
почленная инициализация, 925–27
конструкторы, 892–93
определение
при виртуальном наследовании, 976–78
при множественном наследовании, 950–55
присваивание почленное, 927–28
пространства имен, 406–20
безымянные, 418–20
инкапсуляция сущностей внутри файлов, 419
отличие от других пространств имен, 419
вложенные, 412–14
и using-объявления, 435
объявления перегруженных функций внутри, 434–38
глобальное, 376
доступ к скрытым членам с помощью оператора разрешения области видимости, 411
проблема загрязнения пространства имен, 406
область видимости, 376
std, 426–28
определения, 408–10
определенные пользователем, 407
псевдонимы, 420–21
члены
определения, 416
требование правила одного определения, 416–18
шаблоны функций, 521–24
процедурное программирование
(часть 3), 592–782
псевдоним(ы)
имен типов, typedef, 127
пространства имен, 66, 420–21
Р
равенство
оператор(ы), 145–48
потенциальная возможность выхода за границы, 116
разрешение перегрузки функции, 443
(глава), 429–73
выбор преобразования, 767
детальное описание процедуры, 460–73
наилучшая из устоявших функция, 453
для вызовов с аргументами типа класса, 771–76
и перегрузка, 468–72
ранжирование
последовательностей определенных пользователем преобразований, 1034–36
последовательностей стандартных преобразований, 468–72
устоявшие функции, 465–68
для вызовов операторных функций, 787–88
для вызовов функций-членов, 779–82
и аргументы по умолчанию, 472–73
и наследование, 1034–36
функции-кандидаты, 461–65
для вызовов в области видимости класса, 770–71
для вызовов операторных функций, 783–87
для вызовов с аргументами типа класса, 767–70
для вызовов функций-членов, 778
и наследование, 1031–34
явные приведения как указания компилятору, 451
разрешения области видимости оператор (
)
доступ к членам глобальной области видимости, 411
), 410–12
)
доступ к членам вложенного пространства имен, 412–14
Разрешения области видимости оператор (
)
доступ к шаблону функции как члену пространства имен, 524
разыменования оператор (*)
использование с возвращенным типом указателя, 367
как унарный оператор, 141
не требуется для вызова функции, 368
опасности, связанные с указателями, 333
приоритет, 118
ранжирование
определений шаблона функции, 505
последовательностей стандартных преобразований, 468–72
рассказ об Алисе Эмме, 250
и реализация класса string, 137
рекурсивные функции, 352
С
С, язык
символьные строки
использование итератора istream_iterator, 579
функции
указатели на функции, 373
связыватель
как класс адаптора функции, 573
сигнатура, 325
символ(ы)
литералы
синтаксис записи, 77
массив символов, инициализация, 114, 115
нулевой, для завершения строкового литерала, 78
символы
& (амперсанд)
оператор взятия адреса
использование в определении ссылки, 104
&& (двойной амперсанд)
оператор логического И, 146
символы
(двойное двоеточие)
оператор разрешения области видимости класса, 42
(двойное двоеточие)
оператор разрешения области видимости, 410–12
-- (двойной минус)
оператор декремента, 153, 740–44
- (минус)
использование для обозначения опций в командной строке, 357
! (восклицательный знак)
оператор "логическое НЕ"
вычисление, 147
характеристики и синтаксис, 145
% (процент)
оператор деления по модулю, 142
оператор вычисления остатка, характеристики и синтаксис, 143
%= (процент равно)
оператор вычисления остатка с присваиванием, 152
& (амперсанд)
оператор взятия адреса
использование с именем функции, 164
как унарный оператор, 141
оператор побитового И, 164
&& (двойной амперсанд)
оператор логического И, 142
&= (амперсанд равно)
оператор побитового И с присваиванием, 164
как оператор составного присваивания, 152
() (круглые скобки)
использование оператора вызова для передачи объекта-функции, 567
оператор вызова, перегрузка в объектах-функциях, 559
(обратная косая черта a)
escape-последовательность "звонок", 77
(обратная косая черта n)
escape-последовательность "новая строка", 77
(обратная косая черта v)
escape-последовательность "вертикальная табуляция", 77
(обратная косая черта знак вопроса)
escape-последовательность "знак вопроса", 77
(обратная косая черта)
как escape-символ, 280
* (звездочка)
оператор разыменования
доступ к объектам с помощью, 89
использование для задания типа возвращаемого значения, 366
как унарный оператор, 141
не требуется для вызова функции, 368
определение указателей с помощью, 87
приоритет, 118
оператор умножения
характеристики и синтаксис, 142
*= (звездочка равно)
оператор умножения с присваиванием, 152
, (запятая)
неправильное применение для индексации массива, 117
оператор, 163
. (точка)
оператор "точка", 38
... (многоточие), 343–44
для обозначения универсального catch-обработчика, 544
использование в типах функций, 367
/ (косая черта)
оператор деления
характеристики и синтаксис, 142
/= (косая черта равно)
оператор деления с присваиванием, 152
; (точка с запятой)
для завершения инструкций, 188
?: (знак вопроса двоеточие)
условный оператор, 133, 158
сокращенная запись if-else, 199
[,) (левая квадрнатная, правая круглая скобки)
для обозначения интервала с включенной левой границей, 583
[] (квадратные скобки)
для динамического выделения памяти под массив, 400
для освобождения выделенной под массив памяти, 402
оператор взятия индекса
для доступа к вектору, 121
для проверки битов в битовом векторе, 168
инициализация отображения с помощью, 294
не поддерживается для контейнеров multiset и multimap, 312
оператор взятия индекса, 736
оператор индексирования массива, перегрузка в определении класса массива, 45
\\ " (обратная косая черта двойная кавычка)
escape-последовательность двойной кавычки, 77
\\ (двойная обратная косая черта)
escape-последовательность "обратная косая черта", 77
\\t (обратная косая черта t)
escape-последовательность горизонтальнаятабуляция, 77
^ (крышка)
оператор побитового ИСКЛЮЧАЮЩЕГО ИЛИ, 164
^= (крышка равно)
оператор побитового ИСКЛЮЧАЮЩЕГО ИЛИ с присваиванием, 164
как оператор составного присваивания, 152
__STDC__, 23
_обратная косая черта одиночная кавычка)
escape-последовательность "одиночная кавычка", 77
{} (фигурные скобки)
использование в объявлениях пространств имен, 408
использование в предложении catch, 536
использование в составной директиве связывания, 354
как ограничители составной инструкции, 188
при инициализации вложенного массива, 117
| (вертикальная черта)
оператор побитового ИЛИ, 164
|| (двойная вертикальная черта)
оператор логического ИЛИ
характеристики и синтаксис, 145
оператор логического ИЛИ
вычисление, 146
|= (вертикальная черта равно)
оператор побитового ИЛИ с присваиванием, 164
как оператор составного присваивания, 152
~ (тильда)
оператор побитового НЕ, 164
+ (плюс)
оператор сложения
поддержка в арифметических типах данных, 30
++ (двойной плюс)
оператор инкремента, 153, 740–44
+= (плюс равно)
оператор сложения с присваиванием, 146
+= (плюс равно)оператор сложения с присваиванием
как оператор составного присваивания, 152
< (левая угловая скобка)
оператор "меньше"
вопросы поддержки, 566
использование при сортировке по длине, 558
перегруженный оператор в определении контейнера, 259
<< (двойная левая угловая скобка)
оператор вывода, 26
оператор сдвига влево, 164
<<=(двойная левая угловая скобка равно)
оператор левого сдвига с присваиванием, 152
<> (угловые скобки)
явный шаблон
применение в специализациях, 499
спецификации аргументов, 490
-= (минус равно)
оператор вычитания с присваиванием, 152
= (равно)
оператор присваивания, 100, 733–35
и l-значение, 81
использование с объектами классов, 39
использование с псевдонимами пространств имен, 420
== (двойное равно)
оператор равенства, 100
поддержка в арифметических типах данных, 30
оператор равенства, необходимость наличия в определении контейнера, 259
-> (минус правая угловая скобка)
оператор "стрелка"
перегруженный оператор доступа к членам, 740
>> (двойная правая угловая скобка)
оператор ввода, 1051–63
перегрузка. cin. cin
оператор сдвига вправо, 164
>>=(двойная правая угловая скобка равно)
оператор правого сдвига с присваиванием, 152
символы:, 77
сложения (+) оператор
комплексных чисел, 155
сокрытие информации, 39, 598
вопросы, связанные с вложенными пространствами имен, 414
доступ к
закрытым членам класса, 607
имена в локальной области видимости, 378
объявление члена пространства имен, обход с помощью оператора разрешения области видимости, 411
параметры шаблона, имена в глобальной области видимости, 478
сравнение с перегрузкой, 434
во вложенных областях видимости, 461
члены глобальной области видимости, доступ с помощью оператора разрешения области видимости, 411
составные
выражения, 142
инструкции, 188–89
директивы связывания, 354
присваивания
оператор, 152
операторы над комплексными числами, 156
состояния условий
в применении к библиотеке iostream, 1086–88