<< Пред. стр. 116 (из 121) След. >>
массивызапрет иниициализации другим массивом, 115
запрет использования в качестве возвращаемого значения функции, 324
запрет присваивания другому массиву, 324
запрет ссылаться на, 115
инициализация при выделении из хипа, 400
отсутствие поддержки операции erase(), 557
поддержка в обобщенных алгоритмах, 553
сравнение с векторами, 122
типы данных
арифметические, 30–33
выполнение
непоследовательные инструкции, 20
условное, 20
выражения
(глава), 141–87
использование аргументов по умолчанию, 342
порядок вычисления подвыражений, 142
разрешение имен, 377
вычисление
логических операторов, 146
порядок вычисления подвыражений, 142
вычитание
minus, объект-функция, 570
комплексных чисел, 154
Г
глобальное пространство имен
проблема засорения, 66, 406
глобальные объекты
и функции, 381–87
сравнение с параметрами и возвращаемыми значениями функций, 349–50
глобальные функции, 381
горизонтальная табуляция (\\t)
как escape-последовательность, 77
Д
данные члены, 595–96
данные-члены
битовые поля, 643–45
изменчивые (mutable), 614–16
статические, 621–28
в шаблонах классов, 821–24
указатель this, 616–21
члены базового и производного классов, 870–79
двойная кавычка (\\ ")
как escape-последовательность, 77
двойная обратная косая черта (\\)
как escape-последовательность, 77
двунаправленный итератор, 583
декремента оператор (--)
встроенный, 153–54
перегруженный, 740–44
постфиксная форма, 153, 743
префиксная форма, 153, 742
деление
комплексных чисел, 155
целочисленное, 143
деления по модулю оператор (%), 142
деструктор(ы), 682–89
для элементов массива, 690
динамическое выделение памяти
для массива, 162, 400–402
исчерпание памяти, исключение bad_alloc, 393
как требование к динамически растущему вектору, 253
объектов, 392–406
управление с помощью класса auto_ptr, 395
динамическое освобождение памяти
для массивов, 400–402
объектов, 392–406
константных, 402–3
одиночных объектов, 392–95
оператор delete, 134, 392, 394, 744–53
управление с помощью класса auto_ptr, 395
утечка памяти, 395
директивы, 21–24
директивы связывания, 353–55
в связи с перегрузкой, 438
использование с указателями на функции, 373
для элементов массива
динамическое выделение памяти, 691–94
доступ
к контейнеру
использование итератора для, 261
последовательный доступ как критерий выбора типа, 252
к массиву, 31
индекс, 45
индексирование, 113
к пространству имен
механизмы, компромиссные решения, 68
к членам, 598–99, 607–8
оператор доступа к членам ->, 740
произвольный, итератор с произвольным доступом, 583
уровни, protected, 49
друзья, 730–33
и специальные права доступа, 137, 599–600
перегруженные операторы, 730–33
См. также доступ, класс(ы), наследование, 815–21
Е
емкость контейнерных типов
в сравнении с размером, 253
начальная, связь с размером, 258
З
забой (, 77
заголовочные файлы
как средство повторного использования объявлений функций, 323
по имени
algorithm, 72, 584
bitset, 167
complex, 125
fstream, 1042
functional, 568
iomanip, 136
iterator, 578
limits, 145
locale, 283
map, 293
memory, 395
numeric, 584, 586
queue, 315
set, 304
sstream, 1044
stack, 312
string, 68
vector, 70, 121, 256
предкомпилированные, 385
содержимое
включение определения шаблона функции, преимущества и недостатки, 495
встроенные функции, 353
директивы связывания, 354
объявления, 82, 385–87
объявления явных специализаций шаблонов, 503
спецификация аргументов по умолчанию, 341
запись активации, 327
автоматическое включение объектов в, 388
запятая (,)
неправильное использование для индексации массива, 117
оператор, 163
звонок ()
как escape-последовательность, 77
знак вопроса ()
как escape-последовательность, 77
И
И, оператор, 142
идентификатор, 83
использования в качестве спецификатора типа класса, 129
как часть определения массива, 113
соглашения по именованию, 83
иерархии
определение, 862–69
идентификация членов, 870–80
исключений, в стандартной библиотеке C++, 1026–29
поддержка мезанизма классов, 128
изменчивый (mutable) член, 614–16
именование
соглашения об именовании идентификаторов, 83
имя, 83
typedef, как синоним, 126–27
именование членов класса, 607–8
квалифицированные имена, 410–12
статических членов класса, 622–23
членов вложенных пространств имен, 412–14
шаблонов функций как членов пространства имен, 524
область видимости объявления, 376
параметра шаблона
функции, 478
перегруженные операторы, 727–28
переменной, 83
псевдонимы пространства имен, как альтернативные имена, 420–21
разрешение, 377
в локальной области видимости, 379
в области видимости класса, 649–52
в определении шаблона функции, 514–20
инициализация
векторов, 121
сравнение с инициализацией встроенных массивов, 122
комплексного числа, 154
массива
динамически выделенного, 400
динамически выделенных объектов классов, 749
многомерного, 116
указателей на функции, 369
недопустимость инициализации другим массивом, 115
объектов
автоматических, 388
автоматических, по сравнению с локальными статическими, 391
глобальных, инициализация по умолчанию, 382
динамически выделенных, 393
константных, 101
статических локальных, 390, 391
поведение auto_ptr, 397
сравнение с присваиванием, 148
ссылок, 104
указателя на функцию, 367
влияние на спецификацию исключений, 549
вопросы, связанные с перегруженными функциями, 439
инкремента оператор (++)
встроенный, 154
перегруженный, 740–44
постфиксная форма, 153, 743
префиксная форма, 153, 742
инструкции, 188–98
break
для выхода из инструкции switch, 203
break, инструкция, 218–19
continue, 219
do-while, 216–17
сравнение с инструкциями for и while, 209
for, 209–13
goto, 219–21
if, 20, 192–98
if-else, условный оператор как альтернатива, 158
switch, 201–3
использование ключевого слова default, 202, 205
while, 213–16
сравнение с инструкциями for и do-while, 209
блок, 188
объявления, 189–92
простые, 188–89
составные, 188–89
инструкция
while, 21
использование преобразования квалификаторов, 449
использование шаблонов, 62
итератор с произвольным доступом, 583
итератор(ы), 123, 261
begin(), доступ к элементам контейнера, 261
end(), доступ к элементам контейнера, 261
iterator, заголовочный файл, 578
абстракция, использование а обобщенных алгоритмах для обхода, 552
адаптор, 557
вставка элементов в последовательные контейнеры, 266
доступ к подмножеству контейнера с помощью, 262
использование в обобщенных алгоритмах, 575–83
категории, 582–83
двунаправленный итератор, 583
итератор записи, 582
итератор с произвольным доступом, 583
итератор чтения, 582
однонаправленный итератор, 583
обозначение интервала с включенной левой границей, 583
обратные итераторы, 578
потоковык итераторы ввода/вывода, 578–82
istream_iterator, 579–80
ostream_iterator, 580–82
запись целых чисел из вектора в стандартный вывод, 578
чтение целых чисел из стандартного ввода в вектор, 579
требования к поведению, выдвигаемые обобщенными алгоритмами, 584
удаление элементов из последовательного контейнера, 267
К
китайский язык
поддержка двухбайтовых символьных литералов, 77
класс(ы)
возвращаемые значения, 347–49
вопросы эффективности, 712–18
друзья, 599–600, 731
заголовок, 594
объединение, 638–43
объявление, сравнение с определением класса, 600–601
определение, 594–601
сравнение с объявлением класса, 600–601
параметры
вопросы эффективности, 330, 712–18
для возврата сразу нескольких значений, 350
для передачи сразу нескольких параметров, 350
тело, 594
командная строка
класс, 363–65
опции, 356–65
argc, argv - аргументы main(), 356
использование встроенного массива для обработки, 356
пример программы, 361–63
комментарии, 24–26
блочные, 25
комплексные числа, 18, 125–26
выражения с участием, 155
заголовочный файл complex, 125
как абстракция класса, 30
операции, 154–58
представление, 156
типы данных, 30
композиция
объектов, 963–65
сравнение с наследованием, 960–62
конкретизация
шаблона функции, 482
явное объявление специализации
шаблона функции, 497–98
Конкретизация
шаблона функции
разрешение перегрузки, 506–13
конктеризация
точка конкретизации, 518
константы
константные выражения
sizeof() как пример, 162
размер массива должен быть, 113
литерал, 76–78
подстановка, 386
преобразование объектов в, 101
ссылки, рассматриваемые как, 104
конструктор(ы)