Ключевое слово _ _pin используется для определения указателя, который фиксирует местоположение в памяти объекта, на который он указывает. Таким образом, "закрепленный" объект не будет перемещаться в памяти в процессе сборки мусора. Как следствие, сборщик мусора не в состоянии сделать недействительным указатель, модифицированный с помощью ключевого слова _ _pin.
_ _property Ключевое слово _ _property определяет свойство, являющееся функцией-членом, которая позволяет установить или получить значение некоторой переменной (члена данных класса). Свойства предоставляют удобное средство управления доступом к закрытым (private) или защищенным (protected) данным.
_ _sealed Ключевое слово _ _sealed предохраняет модифицируемый им класс от наследования другими классами. Это ключевое слово можно также использовать для информирования о том, что виртуальная функция не может быть переопределена.
_ _try_cast С помощью ключевого слова _ _try_cast можно попытаться преобразовать тип выражения. Если предпринятая попытка окажется неудачной, будет сгенерировано исключение типа System::InvalidCastException.
_ _typeof Ключевое слово _ _typeof позволяет получить объект, который инкапсулирует информацию о данном типе. Этот объект представляет собой экземпляр класса System::Туре.
_ _value Ключевое слово _ _value определяет класс, который представляет собой обозначение типа. Любое обозначение типа содержит собственные значения. И этим тип _ _value отличается от типа _ _gc, который должен выделять память для объекта с помощью оператора new. Обозначения типа, не представляют интерес для "сборщика мусора".
Расширения препроцессора Для поддержки .NET-среды компания Microsoft определяет директиву препроцессора #using, которая используется для импортирования метаданных в программу. Метаданные содержат информацию о типе и членах класса в форме, которая не зависит от конкретного языка программирования. Таким образом, метаданные обеспечивают поддержку смешанного использования языков программирования. Все управляемые С++-программы должны импортировать библиотеку , которая содержит необходимые метаданные для оболочки .NET Framework.
Компания 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