- •Глава 1: Из истории создания C++
- •Глава 2: Обзор элементов языка C++
- •Глава 3: Основные типы данных
- •Глава 4: Инструкции управления
- •Глава 5: Массивы и строки
- •Глава 6: Указатели
- •Глава 7:Функции, часть первая: ОСНОВЫ
- •Глава 8: Функции, часть вторая: ссылки, перегрузка и использование аргументов по умолчанию
- •Глава 9: Еще о типах данных и операторах
- •Глава 10: Структуры и объединения
- •Глава 11: Введение в классы
- •Глава 12: О классах подробнее
- •Глава 13: Перегрузка операторов
- •Глава 14: Наследование
- •Глава 15: Виртуальные функции и полиморфизм
- •Глава 16: Шаблоны
- •Глава 17: Обработка исключительных ситуации
- •Глава 18: С++-система ввода-вывода
- •Глава 19: Динамическая идентификация типов и операторы приведения типа
- •Глава 20: Пространства имен и другие темы
- •Глава 21: Введение в стандартную библиотеку шаблонов
- •Глава 22: Препроцессор C++
- •Приложение А: С-ориентированная система ввода-вывода
- •Приложение Б: Использование устаревшего С++-компилятора
- •Приложение В: *.NET-расширения для C++
- •Предметный указатель
Предметный указатель
-Символы-
#define, директива, 570
#elif, директива, 576 #endif, директива, 575 #error, директива, 574 #if, директива, 575 #ifdef, директива, 577
#ifndef, директива, 577 #include, директива, 574; 602 #pragma, директива, 580
#undef, директива, 578
#using, 609
.NET Framework, 606 _ _abstract, 606
_ _box, 607
_ _cplusplus, макрос, 582 _ _DATE_ _, макрос, 582 _ _delegate, 607
_ _event, 607
_ _FILE_ _, макрос, 580; 582 _ _finally, 607
_ _gc, 607
_ _identifier, 607 _ _interface, 608
_ _LINE_ _, макрос, 580; 582 _ _nogc, 608
_ _pin, 608
_ _property, 608 _ _sealed, 608
_ _STDC_ _, макрос, 582 _ _TIME_ _, макрос, 582 _ _try_cast, 608
_ _typeof, 609 _ _value, 609
-A-
abort(), 417,419 abs(), 167; 191 Allocator, 524
American National Standards Institute, 18 ANSI, 18
asm, 514 assign(), 563 atof(), 164 attribute, 609
auto, спецификатор, 149; 206
-B-
bad(), 471
bad_cast, исключение, 484 BASIC, 24
basic ios, класс, 440 basic_iostream, класс, 440 basic_istream, класс, 440 basic ostream, класс, 440 basic_streambuf, класс, 440 BCPL, 23
before(), 475 begin(), 529 Bindingearly, 393late, 393 bool, 56
boolalpha, флаг, 448 break, 95
-C-
C#, 29
C++ Builder, 27; 33 C89, 23
C99, 23 Call-by-reference, 178 Call-by-value, 178 Cast, 75
catch, 416
cerr, 440 char, 56; 61 cin, 440 class, 266 clear(), 471 clock(), 213 clog, 440 close(), 458 CLR, 606
Common Language Runtime, 606; 609 compare(), 566
const, спецификатор типа, 202; 508 const_cast, оператор, 488
continue, 94
count(), алгоритм, 554 count_if(), алгоритм, 554 cout, 440
-D-
Daylight Saving Time, 251 dec, флаг, 448
delete, 230 double, 40; 56 do-while, 93
dynamic_cast, оператор, 483
-E-
Early binding, 393 end(), 529
enum, 214 eof(), 463 erase(), 529
exit(), 418; 419 EXIT_FAILURE, константа, EXIT_SUCCESS, константа, explicit, 510
extern, 206; 516
419
419
-F-
fabs(), 191 fail(), 471
false, константа, 57 fclose(), 595
feof(), 595 ferror(), 597 fgetc(), 595 fill(), 451 find(), 565 fixed, флаг, 448 flags(), 449 Flat model, 141 float, 56 flush(), 467
fmtflags, перечисление, 447 fopen(), 593
for, цикл, 49; 82 FORTRAN, 24 fprintf(), 600 fputc(), 594 fread(), 597 free(), 233 friend, 294 fscanf(), 600 fseek(), 599
Function overloading, 190 fwrite(), 597
-G-
gcount(), 463 Generated function, 398 get(), 460; 465
getline(), 466 gets(), 107 good(), 471 goto, 97 GUI, 18; 34
-H-
Heap, 229 hex, флаг, 448
-I-
IDE (Integrated Development Environment), 33 if, 48; 78
if-else-if, 81 Inline function, 283
inline, модификатор, 284; 574 insert(), 529; 537
Instantiating, 398 int, 38; 56; 61
Integral promotion, 74
Integrated Development Environment, 33 internal, флаг, 448
International Standards Organization, 18 ios, класс, 447
ios_base, класс, 440 iostate, перечисление, 470 isalpha(), 114
ISO, 18
-J-
Java, 29
-K-
kbhit(), 139
-L-
labs(), 191
Late binding, 393 left, флаг, 448 list, класс, 536 long double, 61; 62 long int, 61; 62
long, модификатор, 60
-M-
main(), 162 make_pair(), 546 malloc(), 233 managed, 609 Manipulator, 447 map, класс, 545 merge(), 537 MFC, 387
Microsoft Foundation Classes, 387 Microsoft Intermediate Language, 606 Modula-2, 23; 41
MSIL, 606
Multiple indirection, 141 mutable, 509
-N-
name(), 475 namespace, 494 Namespace, 35
new, оператор, 230; 430 nothrow, 431
npos, 561 NULL, 594
-O-
Object Oriented Programming, 264 oct, флаг, 448
OOP, 264 open(), 456
openmode, перечисление, 457 operator, 320
Operator, 68 overload, 193
-P-
pair, класс, 546 Pascal, 23; 41 peek(), 467
Plain Old Data, 281
POD-struct, 281 Pointer-to-member, 517 precision(), 451 Predicate, 524 Preprocessor, 570 printf(), 585
private, 281; 355 protected, 357 public, 267; 355 push_back(), 529; 537 put(), 460
putback(), 467
-Q-
qsort(), 503
Quicksort, алгоритм, 503
-R-
rand(), 138; 478 rdstate(), 470 read(), 461
Reference parameter, 181 register, спецификатор, 211 reinterpret_cast, оператор, 490 remove(), 600
return, инструкция, 166 rewind(), 597
rfind(), 565 right, флаг, 448 RTTI, 474
-S-
scanf(), 588 Scanset, 590 scientific, флаг, 448 seekg(), 468; 470 seekp(), 468; 470 setf(), 448
short int, 61
short, модификатор, 60 showbase, флаг, 448 showflags(), 450 showpoint, флаг, 448 showpos, флаг, 448 signed char, 61
signed int, 61
signed long int, 61; 62 signed short int, 61 signed, модификатор, 60
Simula67, 26 sizeof, 227; 263 skipws, флаг, 448 splice(), 537 Standard C++, 27
Standard Template Library, 26; 54; 522 static, модификатор, 208; 210; 506 static_cast, оператор, 489
std, пространство имен, 35; 438 stderr, поток, 585
stdin, поток, 585 stdout, поток, 585
STL, 26; 54; 522
strcat(), 109 strcmp(), 110 strcpy(), 109; 171 Stream, 439 streamsize, тип, 451 string, класс, 559 strlen(), 111; 161 struct, 238
switch, 87
-T-
tellg(), 470 tellp(), 470 template, 396; 405
template<>, 401; 413 terminate(), 417
this,317; 508 throw, 416
throw-выражение, 427 time_t, тип даты, 251 tm, структура, 251 tolower(), 113 toupper(), 135
true, константа, 57 try, 416
Type promotion, 74 type_info, класс, 474 typeid, 474 typename, 396
-U-
unexpected(), 427 union, 258 unitbuf, флаг, 448 unmanaged, 609 unsetf(), 448; 449 unsigned char, 61 unsigned int, 61
unsigned long int, 61; 62 unsigned short int, 61 unsigned, модификатор, 60 uppercase, флаг, 448
using, 35; 497 virtual, 375; 381 Visual Basic, 23 Visual C++, 27; 33 void, 43; 47; 56 void-функции, 169
volatile, спецификатор типа, 204
-W-
wcerr, 440 wchar_t, 56 wcin, 440 wclog, 440
wcout, 440 while, 91 width(), 451; 452 write(), 461
-А-
Абстрактный класс, 393 Алгоритм
adjacent_find(), 551binary_search(), 551copy(), 551copy_backward(), 551count(), 551count_if(), 551equal(), 551equal_range(), 551fill(), 551
fill_n(), 551find(),find_end(), 551find_first_of(), 552for_each(), 552generate(), 552generate_n(), 552includes(), 552inplace_merge(), 552iter_swap(), 552
lexicographical_compare(), 552lower_bound(), 552make_heap(), 552
max(), 552max_element(), 552merge(), 552min(), 552min_element(), 552mismatch(), 552
next_permutation(), 552nth_element(), 552partial_sort(), 552partial_sort_copy(), 552
partition(), 552pop_heap(), 553prev_permutation(), 553push_heap(), 553Quicksort, 105random_shuffle(), 553remove(), 553remove_copy(), 553; 555remove_copy_if(), 553remove_if(), 553replace(), 553replace_copy(), 553; 555replace_copy_if(), 553replace_if(), 553reverse(),
rotate(), 553search(), 553search_n(), 553set_difference(), 553set_intersection(), 553
set_symmetric_difference(), 553set_union(), 553
sort(), 553sort_heap(), 553stable_partition(), 553stable_sort(), 553swap(), 553swap_ranges(), 553transform(),unique(), 553upper_bond(), 553
Алгоритмы, 523; 551командной строки, 162по умолчанию, 193
функции main(),45; 162
Ассемблер, 23; 514 Атрибут
attribute, 609
-Б-
Библиотека
<mscorlib.dll>, 609STL, 522
Битовое множество, 525 Битовые поля, 256 Блок кода, 24; 51; 148
-В-
Вектор, 527 Виртуальное наследование, 375
Виртуальные функции, 381 Выражение, 73условное, 79
-Г-
Глобальные переменные, 59
-Д-
Дек, 525 Декремент, 69 Деструктор, 273
Динамическая идентификация типов, 474 Динамическая инициализация, 300 Динамический массив, 526 Директива препроцессора, 570
#define, 570#elif, 576#endif, 575#error, 574#if, 575#ifdef, 577#ifhdef, 577#include, 574; 602#line, 580#pragma, 580#undef, 578#using, 609
Дополнительный код, 62
-З-
Заголовки, 172 Заголовок
<algorithm>, 551<bitset>, 525<cctype>, 113<cstdio>, 584<cstdlib>, 44; 419; 504<cstring>, 109<ctime>, 213; 251; 298<deque>, 525<fstream>, 456<functional>, 525<iomanip>, 453
<iostream>, 35; 438; 440; 466<list>, 525
<map>, 525<new>, 430; 436<queue>, 526<set>, 526<stack>, 526<string>, 559<typeinfo>, 474<utility>, 525<vector>, 526stdio.h, 588
Заголовочный файл
<iostream.h>, 438stdio.h, 584
-И-
Идентификатор, 53 Индекс, 102 Инициализациядинамическая, 300массивов, 115переменных, 66 Инкапсуляция, 27 Инкремент, 69
Инструкция
continue, 94do-while, 93for, 49goto, 97if, 48; 78return, 45; 166switch, 87while, 91
Исключение, 230; 416
bad_alloc, 430bad_cast, 484bad_typeid, 477
System::InvalidCastException, 608
Исключительная ситуация, 416 Итераторы, 523входные, 523выходные, 523двунаправленные, 523однонаправленные, 523
произвольного доступа, 523реверсивные, 524
-К-
Класс, 266
allocator, 524basic_ios, 440basic_iostream, 440basic_istream, 440basic_ostream, 440basic_streambuf, 440fstream, 456ifstream, 456
ios,ios_base, 440list, 536map, 545ofstream, 456pair, 546string, 559
type_info, 474vector, 527
абстрактный, 393базовый, 352полиморфный, 381; 475производный, 352шаблонный
pair, 525
Классыконтейнерные, 525
bitset, 525deque, 525list, 525map, 525multimap, 526multiset, 526
priority_queue, 526queue, 526set, 526
stack, 526vector, 526
обобщенные, 404 Ключевые слова C++, 53 Комментарий, 34 Компилятор
C++ Builder, 33
Visual C++, 33
Константа, 63
CLOCKS_PER_SEC, 298EXIT_FAILURE, 419EXIT_SUCCESS, 419npos, 561
Конструктор, 272; 511копии, 305; 311параметризованный, 275 Контейнерные классы, 525 Контейнеры, 523ассоциативные, 523; 545векторы, 526последовательные, 523
Куча, 229; 552; 553
Кэш, 212
-Л-
Лексема, 132 Линейный список, 525 Литерал, 63восьмеричный, 64строковый, 65; 106
шестнадцатеричный, 64 Локальные переменные, 57
-М-
Макроимя, 570; 582 Макроподстановка, 570 Макрос
_ _cplusplus, 582_ _DATE_ _, 582_ _FILE_ _, 582_ _LINE_ _, 582_ _STDC_ _, 582_ _TIME_ _, 582SEEK_CUR, 599SEEK_END, 599SEEK_SET, 599
Манипулятор, 452
boolalpha, 452dec, 452endl, 452ends, 452fixed, 452flush, 452hex, 452internal, 452left, 452
noboolalpha, 452noshowbase, 452noshowpoint, 452noshowpos, 452
noskipws, 452nounitbuf, 453nouppercase, 453oct, 453resetiosflags(), 453right, 453scientific, 453setbase(), 453setfill(), 453setiosflags(), 453; 454setprecision(), 453setw(), 453showbase, 453showpoint, 453showpos, 453skipws, 453unitbuf, 453uppercase, 453
ws, 453; 454
Манипуляторные функции, 454 Массив, 102; 131двумерный, 114инициализация, 115многомерный, 115одномерный, 102объектов, 286строк, 119указателей, 137 Метаданные, 609 Метка, 98
Многоуровневая непрямая адресация, 141 Множество, 526битовое, 525 Модели памяти, 140 Модификатор
const, 488; 508inline, 284long, 60mutable, 509short, 60
signed, 60static, 208; 210unsigned, 60volatile, 488
максимальной длины поля, 590точности, 587 Модификаторы типов, 60 Мультиотображение, 526
-Н-
Набор сканируемых символов, 590 Наследование, 29; 351виртуальное, 375
-О-
Обобщенныеклассы, 404функции, 396 Объединения, 258анонимные, 262 Объект, 28 Объект-функция, 525
less, 525
Объявлениедоступа, 370класса, 360опережающее, 297переменных, 57
ООП, 25; 264
Оператор
!=, 475
&, 125*, 125
==, 475const_cast, 488defined, 579delete, 230dynamic_cast, 483
new, 230; 430
reinterpret_cast, 490sizeof, 227; 263static_cast, 489typeid, 474; 480; 486
XOR, 279; 221
ввода, 441вывода, 441декремента, 50
деления по модулю, 68дополнения до 1, 221И, поразрядный, 219ИЛИ, поразрядный, 220индексации, 340инкремента, 50; 323
исключающее ИЛИ, 219; 221
НЕ, 221
присваивания, 38; 336разрешения контекста, 297; 374
разрешения области видимости, 268; 297;374разыменования адреса *, 523 Операторы, 68арифметические, 68декремента, 69инкремента, 69логические, 71отношений, 71поразрядные, 218приведения типов, 483присваивания,составные, 225сдвига, 222 Операцияприведения типов, 75
Опережающее объявление, 297 Отображение, 525; 545 Очередь, 526приоритетная, 526
-П-
Параметры, 44
ссылочные, 181формальные, 154 Перегрузкаконструкторов, 298операторов, 319ввода-вывода, 441шаблона функции, 401функций, 190 Переменные, 38глобальные, 59; 154инициализация, 66локальные, 57 Перечисление, 214
fmtflags, 447iostate, 470openmode, 457
Позднее связывание, 393 Полесборное
ios::basefield, 448ios::adjustfield, 448ios::floatfield, 448
Полиморфизм, 28; 377 Полиморфный класс, 381; 475 Порожденная функция, 398 Поток, 439
cerr, 440cin, 440clog, 440cout, 440stderr, 585stdin, 585stdout, 585wcerr, 440wcin, 440wclog, 440wcout, 440
двоичный, 439стандартныйввода, 585
вывода, 585ошибок, 585текстовый, 439 Предикат, 524 Приоритетная очередь, 526 Пространство имен, 494
std, 35; 438; 500
неименованное, 499 Прототип функции, 43; 171 Псевдопеременные
_ _FILE_ _, 580
_ _LINE_ _, 580
-Р-
Раннее связывание, 393 Распределитель памяти, 524 Расширение типа, 74 Реализация, 398 Рекурсия, 173 Ритчи, Дэнис, 23
-С-
Связываниепозднее, 393раннее, 393 Специализацияклассаявная, 413функции, 398явная, 399 Спецификатор
explicit, 510inline, 574private, 355protected, 357public, 355
компоновки, 515минимальной ширины поля, 586 Спецификатор класса памяти
auto, 206
extern, 206register, 211
Спецификатор типа
const, 202volatile, 204
Список, 536сортировка, 541 Ссылкина объекты, 291
на производные типы, 381независимые, 188 Стандарт
С89, 584С99, 584
Стандарт С, 23
Стандартная библиотека C++, 54 Стандартная библиотека шаблонов, 54
Стек, 152; 526
Страуструп, Бьерн, 25; 70 Строка, 36; 106 Строковый литерал, 106 Структура, 238
-Т-
Таблица строк, 136 Тег, 255 Тип
basic_string, 559BinPred, 524bool, 57; 74char, 56clock_t, 298double, 56float, 56
int, 56iterator, 523nothrow_t, 436off_type, 468pos_type, 470ptrdiff_t, 554
size_t, 432; 504streamsize, 451string, 559UnPred, 524void, 57wchar_t, 56wstring, 559
-У-
Указатели, 123на объекты, 289
на производные типы, 378на функции, 502на член класса, 517
Управляющие последовательности, 65 Условное выражение, 79
-Ф-
Фабрика объектов, 478 Файл, 439 Файловый указатель, 592
Факториал числа, 174 Флаг
boolalpha, 448dec, 448fixed, 448hex, 448internal, 448left, 448oct, 448right, 448scientific, 448showbase, 448showpoint, 448showpos, 448skipws, 448unitbuf, 448uppercase, 448
Флаг знака, 62
Формальные параметры, 58 Функции, 24; 147; 294виртуальные, 381встраиваемые, 283манипуляторные, 454обобщенные, 396перегрузка, 190сравнения, 524 Функция, 36; 41
abort(), 417; 419
abs(), 43; 167; 191; 403
asctime(), 252assign(), 563atof(), 164bad(), 471before(), 475begin(), 529clear(), 471clock(), 213close(), 458compare(), 566end(), 529eof(), 463erase(), 529; 532exit(), 418; 419fabs(), 191fail(), 471fclose(), 595feof(), 595ferror(), 597fgetc(), 595fill(), 451find(), 565flags(), 449flush(), 467fopen(), 593fprintf), 600fputc(), 594fread(), 597free(), 233
fscanf(), 600fseek(), 599fwrite(), 597gcount(), 463get(), 460; 465getline(), 466gets(), 107good(), 471insert(), 529; 532; 537isalpha(), 114kbhit(), 139labs(), 191localtime(), 251; 252main(), 46; 162make_pair(), 546malloc(), 233; 431merge(), 537name(), 475open(), 456operator, 320operator(), 525peek(), 467precision(), 451printf(), 585push_back(), 529; 537push_front(), 537put(), 460putback(), 467qsort(), 503rand(), 138; 478rdstate(), 470read(), 461remove(), 600rewind(), 597rfind(), 565scanf(), 588seekg(), 468; 470seekp(), 468; 470setf(), 448showflags(), 450
splice(), 537strcat(), 109strcmp(), 110strcpy(), 109; 171strlen(), 111; 161tellg(), 470tellp(), 470terminate(), 417time(), 251tolower(), 113toupper(), 113; 135unexpected(), 427unsetf(), 448width(), 451; 452write(), 461
операторная, 320параметризованная, 45порожденная, 398преобразования, 519шаблонная, 398
-Ц-
Цикл
do-while, 93for, 49; 82while, 91
бесконечный, 87вложенный, 97
-Ш-
Шаблон, 396 Шаблонная функция, 398