Шилдт c++_базовый_курс издание 3. Герберт Шилдт С базовый курс
Скачать 9.37 Mb.
|
_ _try_cast С помощью ключевого слова _ _try_cast можно попытаться преобразовать тип выражения. Если предпринятая попытка окажется неудачной, будет сгенерировано исключение типа System::InvalidCastException. _ _typeof Ключевое слово _ _typeof позволяет получить объект, который инкапсулирует информацию о данном типе. Этот объект представляет собой экземпляр класса System::Туре. _ _value Ключевое слово _ _value определяет класс, который представляет собой обозначение типа. Любое обозначение типа содержит собственные значения. И этим тип _ _value отличается от типа _ _gc, который должен выделять память для объекта с помощью оператора new. Обозначения типа, не представляют интерес для "сборщика мусора". Расширения препроцессора Для поддержки .NET-среды компания Microsoft определяет директиву препроцессора #using, которая используется для импортирования метаданных в программу. Метаданные содержат информацию о типе и членах класса в форме, которая не зависит от конкретного языка программирования. Таким образом, метаданные обеспечивают поддержку смешанного использования языков программирования. Все управляемые С++-программы должны импортировать библиотеку Компания Microsoft определяет две pragma-инструкции (используемые с директивой препроцессора #pragma), которые имеют отношение к оболочке .NET Framework. Первая (managed) определяет управляемый код. Вторая (unmanaged) определяет неуправляемый (собственный, т.е. присущий данной среде) код. Эти инструкции могут быть использованы внутри программы для селективного создания управляемого и неуправляемого кода. Атрибут attribute Компания Microsoft определяет атрибут attribute, который используется для объявления другого атрибута. Компиляция управляемых С++-программ На момент написания этой книги единственный доступный компилятор, который мог обрабатывать программы, ориентированные на работу в среде .NET Framework, поставлялся компанией Microsoft (Visual Studio .NET). Чтобы скомпилировать управляемую программу, необходимо использовать команду /сlr, которая передаст вашу программу "в руки" универсального средства Common Language Runtime. Предметный указатель -Символы- #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 Binding early, 393 late, 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, константа, 419 EXIT_SUCCESS, константа, 419 explicit, 510 extern, 206 ; 516 -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(), 551 binary_search(), 551 copy(), 551 copy_backward(), 551 count(), 551 count_if(), 551 equal(), 551 equal_range(), 551 fill(), 551 fill_n(), 551 find(), 551 ; 552 find_end(), 551 find_first_of(), 552 for_each(), 552 generate(), 552 generate_n(), 552 includes(), 552 inplace_merge(), 552 iter_swap(), 552 lexicographical_compare(), 552 lower_bound(), 552 make_heap(), 552 max(), 552 max_element(), 552 merge(), 552 min(), 552 min_element(), 552 mismatch(), 552 next_permutation(), 552 nth_element(), 552 partial_sort(), 552 partial_sort_copy(), 552 partition(), 552 pop_heap(), 553 prev_permutation(), 553 push_heap(), 553 Quicksort, 105 random_shuffle(), 553 remove(), 553 remove_copy(), 553 ; 555 remove_copy_if(), 553 remove_if(), 553 replace(), 553 replace_copy(), 553 ; 555 replace_copy_if(), 553 replace_if(), 553 reverse(), 553 ; 557 rotate(), 553 search(), 553 search_n(), 553 set_difference(), 553 set_intersection(), 553 set_symmetric_difference(), 553 set_union(), 553 sort(), 553 sort_heap(), 553 stable_partition(), 553 stable_sort(), 553 swap(), 553 swap_ranges(), 553 transform(), 553 ; 557 unique(), 553 upper_bond(), 553 Алгоритмы, 523 ; 551 командной строки, 162 по умолчанию, 193 функции main(), 45 ; 162 Ассемблер, 23 ; 514 Атрибут attribute, 609 -Б- Библиотека 609 STL, 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 Заголовок 551 525 113 584 44 ; 419 ; 504 109 213 ; 251 ; 298 525 456 525 453 35 ; 438 ; 440 ; 466
525 Инструкция continue, 94 do-while, 93 for, 49 goto, 97 if, 48 ; 78 return, 45 ; 166 switch, 87 while, 91 Исключение, 230 ; 416 bad_alloc, 430 bad_cast, 484 bad_typeid, 477 System::InvalidCastException, 608 Исключительная ситуация, 416 Итераторы, 523 входные, 523 выходные, 523 двунаправленные, 523 однонаправленные, 523 произвольного доступа, 523 реверсивные, 524 -К- Класс, 266 allocator, 524 basic_ios, 440 basic_iostream, 440 basic_istream, 440 basic_ostream, 440 basic_streambuf, 440 fstream, 456 ifstream, 456 ios, 447 ; 457 ios_base, 440 list, 536 map, 545 ofstream, 456 pair, 546 string, 559 type_info, 474 vector, 527 абстрактный, 393 базовый, 352 полиморфный, 381 ; 475 производный, 352 шаблонный pair, 525 Классы контейнерные, 525 bitset, 525 deque, 525 list, 525 map, 525 multimap, 526 multiset, 526 priority_queue, 526 queue, 526 set, 526 stack, 526 vector, 526 обобщенные, 404 Ключевые слова C++, 53 Комментарий, 34 Компилятор C++ Builder, 33 Visual C++, 33 Константа, 63 CLOCKS_PER_SEC, 298 EXIT_FAILURE, 419 EXIT_SUCCESS, 419 npos, 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_ _, 582 SEEK_CUR, 599 SEEK_END, 599 SEEK_SET, 599 Манипулятор, 452 boolalpha, 452 dec, 452 endl, 452 ends, 452 fixed, 452 flush, 452 hex, 452 internal, 452 left, 452 noboolalpha, 452 noshowbase, 452 noshowpoint, 452 noshowpos, 452 noskipws, 452 nounitbuf, 453 nouppercase, 453 oct, 453 resetiosflags(), 453 right, 453 scientific, 453 setbase(), 453 setfill(), 453 setiosflags(), 453 ; 454 setprecision(), 453 setw(), 453 showbase, 453 showpoint, 453 showpos, 453 skipws, 453 unitbuf, 453 uppercase, 453 ws, 453 ; 454 Манипуляторные функции, 454 Массив, 102 ; 131 двумерный, 114 инициализация, 115 многомерный, 115 одномерный, 102 объектов, 286 строк, 119 указателей, 137 Метаданные, 609 Метка, 98 Многоуровневая непрямая адресация, 141 Множество, 526 битовое, 525 Модели памяти, 140 Модификатор const, 488 ; 508 inline, 284 long, 60 mutable, 509 short, 60 |