Přípony komponent pro platformy běhového prostředíComponent Extensions for Runtime Platforms

Visual C++ poskytuje rozšíření jazyka pomoci programovat proti platformy běhového prostředí.Visual C++ provides language extensions to help you program against runtime platforms. S použitím C + +/ CX, při programování aplikací pro univerzální platformu Windows a komponenty, které se kompilují do nativního kódu.By using C++/CX, you can program Universal Windows Platform apps and components that compile to native code. I když můžete vytvořit aplikace pro univerzální platformu Windows pomocí programování přímo proti rozhraní Windows Runtime COM s použitím C + +/ CX, můžete pracovat s konstruktory, výjimek a jiné moderní programovací idiomy C++.Although you can create Universal Windows Platform apps by programming directly against the Windows Runtime COM interfaces, by using C++/CX, you can work with constructors, exceptions, and other modern C++ programming idioms. Pokud chcete povolit programování C++ ve spravovaném spouštěcím prostředí na platformě .NET, můžete použít C + +/ CLI.To enable C++ programming in a managed execution environment on the .NET platform, you can use C++/CLI.

Dva moduly runtime, jednu sadu rozšířeníTwo runtimes, one set of extensions

C + +/ CX je podmnožinou jazyka C + +/ CLI.C++/CX is a subset of C++/CLI. Pro rozšíření, které jsou společné pro C + +/ CX a C + +/ CLI, sémantika závisí na tom, zda cílíte na modul CLR (CLR) nebo prostředí Windows Runtime.For extensions that are common to C++/CX and C++/CLI, the semantics depend on whether you are targeting the common language runtime (CLR) or the Windows Runtime. Chcete-li zkompilovat aplikaci pro spuštění v modulu Windows Runtime, zadejte /ZW – možnost kompilátoru.To compile your app to run on the Windows Runtime, specify the /ZW compiler option. Chcete-li zkompilovat jeho spuštění na modulu CLR, zadejte /clr – možnost kompilátoru.To compile it to run on the CLR, specify the /clr compiler option. Tyto přepínače jsou nastaveny automaticky při vytvoření projektu pomocí sady Visual Studio.These switches are set automatically when you use Visual Studio to create a project.

Další informace o vytváření aplikací pro univerzální platformu Windows v jazyce C++ naleznete v tématu plán pro prostředí Windows Runtime aplikací pomocí C++.For more information about how to create Universal Windows Platform apps in C++, see Roadmap for Windows Runtime apps using C++.

C + +/ CLI rozšiřuje standard ISO/ANSI C++ a je definován v části s Ecma C + +/ CLI Standard.C++/CLI extends the ISO/ANSI C++ standard, and is defined under the Ecma C++/CLI Standard. Další informace najdete v tématu .NET programování v jazyce C + +/ CLI (Visual C++).For more information, see .NET Programming with C++/CLI (Visual C++).

Klíčová slova datový typData Type Keywords

Jazyková rozšíření zahrnují agregovat klíčová slova, které jsou klíčová slova, které se skládají ze dvou tokeny oddělené symbolem mezery.The language extensions include aggregate keywords, which are keywords that consist of two tokens separated by white space. Tokeny může mít jeden význam při použití samostatně a jiný význam při použití společně.The tokens might have one meaning when they are used separately, and another meaning when they are used together. Například slovo "ref" je běžný identifikátor a slovo "třída" je klíčové slovo, který deklaruje nativních tříd.For example, the word "ref" is an ordinary identifier, and the word "class" is a keyword that declares a native class. Ale když se tato slova kombinovány do třídy ref class, výsledný agregační – klíčové slovo deklaruje entita, která se označuje jako runtime třídy.But when these words are combined to form ref class, the resulting aggregate keyword declares an entity that is known as a runtime class.

Rozšíření také zahrnovat kontextové klíčová slova.The extensions also include context-sensitive keywords. Klíčové slovo je zpracováván jako kontextové v závislosti na typu příkazu, který obsahuje a jeho umístění v, který tento příkaz.A keyword is treated as context-sensitive depending on the kind of statement that contains it, and its placement in that statement. Například token "vlastnosti" může být identifikátor nebo ho můžete deklarovat zvláštní druh člena veřejné třídy.For example, the token "property" can be an identifier, or it can declare a special kind of public class member.

Následující tabulka obsahuje seznam klíčových slov v rozšíření jazyka C++.The following table lists keywords in the C++ language extension.

Klíčové slovoKeyword Závislá na kontextuContext sensitive ÚčelPurpose OdkazReference
třídy ref class.ref class

REF – strukturaref struct
NeNo Deklaruje třídu.Declares a class. Třídy a strukturyClasses and Structs
hodnotová třídavalue class

Hodnota – strukturavalue struct
NeNo Deklaruje hodnotové třídě.Declares a value class. Třídy a strukturyClasses and Structs
Třída rozhraníinterface class

Struktura rozhraníinterface struct
NeNo Deklaruje rozhraní.Declares an interface. Třída rozhraníinterface class
Třída výčtuenum class

Struktura výčetenum struct
NeNo Deklaruje výčet.Declares an enumeration. Třída výčtuenum class
propertyproperty AnoYes Deklaruje vlastnost.Declares a property. propertyproperty
delegatedelegate AnoYes Deklaruje delegáta.Declares a delegate. delegate (rozšíření komponent C++)delegate (C++ Component Extensions)
eventevent AnoYes Deklaruje událost.Declares an event. eventevent

override – specifikátoryOverride Specifiers

Následující klíčová slova můžete použít k určení chování přepsat pro odvození.You can use the following keywords to qualify override behavior for derivation. I když nové – klíčové slovo není rozšířením jazyka C++, je vzhledem k tomu je možné v další kontext zde uvedena.Although the new keyword is not an extension of C++, it is listed here because it can be used in an additional context. Několik specifikátorů platí také pro nativní programování.Some specifiers are also valid for native programming. Další informace najdete v tématu jak: deklarovat specifikátorů Override v nativní kompilaci (C + +/ CLI).For more information, see How to: Declare Override Specifiers in Native Compilations (C++/CLI).

Klíčové slovoKeyword Závislá na kontextuContext Sensitive ÚčelPurpose OdkazReference
abstractabstract AnoYes Určuje, že jsou abstraktní funkcí nebo tříd.Indicates that functions or classes are abstract. abstractabstract
newnew NeNo Označuje, že funkce není přepsání verze základní třídy.Indicates that a function is not an override of a base class version. New (nový slot v tabulce vtable)new (new slot in vtable)
overrideoverride AnoYes Označuje, že metoda musí být přepsání verze základní třídy.Indicates that a method must be an override of a base-class version. overrideoverride
sealedsealed AnoYes Třídy brání použití jako základní třídy.Prevents classes from being used as base classes. sealedsealed

Klíčová slova pro obecné typyKeywords for Generics

Byly přidány následující klíčová slova pro podporu obecných typů.The following keywords have been added to support generic types. Další informace najdete v tématu obecných typů.For more information, see Generics.

Klíčové slovoKeyword Závislá na kontextuContext sensitive ÚčelPurpose
Obecnégeneric NeNo Deklaruje obecného typu.Declares a generic type.
kdewhere AnoYes Určuje omezení, která se použijí na parametr obecného typu.Specifies the constraints that are applied to a generic type parameter.

Ostatní klíčová slovaMiscellaneous Keywords

Následující klíčová slova jsou přidané do rozšíření C++.The following keywords have been added to the C++ extensions.

Klíčové slovoKeyword Závislá na kontextuContext sensitive ÚčelPurpose OdkazReference
finallyfinally AnoYes Určuje výchozí chování handlings výjimky.Indicates default exception handlings behavior. Zpracování výjimekException Handling
for each, infor each, in NeNo Vytvoří výčet prvků kolekce.Enumerates elements of a collection. for each, infor each, in
gcnewgcnew NeNo Přidělí typy v haldě uvolňování paměti.Allocates types on the garbage-collected heap. Použít místo nové a odstranit.Use instead of new and delete. REF new, gcnewref new, gcnew
Nový odkazref new AnoYes Přidělí typ Windows Runtime.Allocates a Windows Runtime type. Použít místo nové a odstranit.Use instead of new and delete. REF new, gcnewref new, gcnew
InitOnly.initonly AnoYes Označuje, že člen se dá inicializovat jenom v deklaraci nebo statický konstruktor.Indicates that a member can only be initialized at declaration or in a static constructor. initonly (C++/CLI)initonly (C++/CLI)
literálliteral AnoYes Vytvoří proměnnou literálu.Creates a literal variable. literálliteral
nullptrnullptr NeNo Označuje, že popisovač nebo ukazatel neukazuje na objekt.Indicates that a handle or pointer does not point at an object. nullptrnullptr

Šablona konstrukceTemplate Constructs

Tyto jazykové konstrukce jsou implementovány jako šablony, nikoli jako klíčová slova.The following language constructs are implemented as templates, instead of as keywords. Pokud zadáte /ZW – možnost kompilátoru, jsou definovány v lang oboru názvů.If you specify the /ZW compiler option, they are defined in the lang namespace. Pokud zadáte /clr – možnost kompilátoru, jsou definovány v cli oboru názvů.If you specify the /clr compiler option, they are defined in the cli namespace.

Klíčové slovoKeyword ÚčelPurpose OdkazReference
Polearray Deklaruje pole.Declares an array. PoleArrays
interior_ptrinterior_ptr (Pouze CLR) Body k datům v typu odkazu.(CLR only) Points to data in a reference type. interior_ptr (C++/CLI)interior_ptr (C++/CLI)
pin_ptrpin_ptr (Pouze CLR) Odkazuje na odkazové typy CLR dočasně potlačit systém kolekce paměti.(CLR only) Points to CLR reference types to temporarily suppress the garbage-collection system. pin_ptr (C++/CLI)pin_ptr (C++/CLI)
safe_castsafe_cast Určuje a provede metodu optimální přetypování typu modulu runtime.Determines and executes the optimal casting method for a runtime type. safe_castsafe_cast
identifikátor TypeId.typeid (Pouze CLR) Načte System.Type objekt, který popisuje daného typu nebo objekt.(CLR only) Retrieves a System.Type object that describes the given type or object. identifikátor TypeId.typeid

DeklarátoryDeclarators

Následující typ deklarátory dáte pokyn, aby modul runtime k automatické správě životního cyklu a odstranění přidělených objektů.The following type declarators instruct the runtime to automatically manage the lifetime and deletion of allocated objects.

OperátorOperator ÚčelPurpose OdkazReference
^ Deklaruje popisovač pro objekt; To znamená, ukazatel na objekt prostředí Windows Runtime nebo CLR, který se automaticky odstraní, když už není použitelný.Declares a handle to an object; that is, a pointer to a Windows Runtime or CLR object that is automatically deleted when it is no longer usable. Operátor popisovače objektu (^)Handle to Object Operator (^)
% Deklaruje odkazem sledování.; To znamená, že odkaz na objekt prostředí Windows Runtime nebo CLR, který se automaticky odstraní, když už není použitelný.Declares a tracking reference; that is, a reference to a Windows Runtime or CLR object that is automatically deleted when it is no longer usable. Operátor sledovacího odkazuTracking Reference Operator

Tato část obsahuje další programovací konstrukce a témata, která se týkají modulu CLR.This section lists additional programming constructs, and topics that pertain to the CLR.

TémaTopic PopisDescription
__identifier (C++/CLI)__identifier (C++/CLI) (Windows Runtime a CLR) Umožňuje použít klíčová slova jako identifikátory.(Windows Runtime and CLR) Enables the use of keywords as identifiers.
Seznamy argumentů s proměnnou délkou (...) (C++/CLI)Variable Argument Lists (...) (C++/CLI) (Windows Runtime a CLR) Povolí funkci provést proměnný počet argumentů.(Windows Runtime and CLR) Enables a function to take a variable number of arguments.
.NET Framework – ekvivalenty nativních typů C++ (C++/CLI).NET Framework Equivalents to C++ Native Types (C++/CLI) Seznam typů CLR, které se používají místo celočíselné typy C++.Lists the CLR types that are used in place of C++ integral types.
doména AppDomain __declspec modifikátorappdomain __declspec modifier __declspec modifikátor, který určuje, že existují statické a globální proměnné na doménu aplikace.__declspec modifier that mandates that static and global variables exist per appdomain.
Přetypování C-Style s parametrem/CLR (C + +/ CLI)C-Style Casts with /clr (C++/CLI) Popisuje, jak se interpretují přetypování C-style.Describes how C-style casts are interpreted.
výraz __clrcall konvence volání__clrcall calling convention Určuje konvence volání CLR nedodržující předpisy.Indicates the CLR-compliant calling convention.
__cplusplus_cli Předdefinovaná makraPredefined Macros
Vlastní atributyCustom Attributes Popisuje, jak definovat vlastní atributy CLR.Describes how to define your own CLR attributes.
Zpracování výjimekException Handling Poskytuje přehled o zpracování výjimek.Provides an overview of exception handling.
Explicitní přepsáníExplicit Overrides Ukazuje, jak můžete členské funkce přepsat libovolné členy.Demonstrates how member functions can override arbitrary members.
Přátelská sestavení (C++)Friend Assemblies (C++) Tento článek popisuje, jak sestavení klienta můžete získat přístup k všechny typy v jako součást sestavení.Discusses how a client assembly can access all types in an assembly component.
ZabaleníBoxing Ukazuje podmínky v hodnot, které jsou v poli typy.Demonstrates the conditions in which values types are boxed.
Podpora kompilátoru pro typové vlastnostiCompiler Support for Type Traits Popisuje, jak detekovat vlastnosti typů v době kompilace.Discusses how to detect characteristics of types at compile time.
spravované, nespravované direktivy pragmamanaged, unmanaged pragmas Ukazuje, jak spravované a nespravované funkce mohou současně existovat ve stejném modulu.Demonstrates how managed and unmanaged functions can co-exist in the same module.
proces __declspec modifikátorprocess __declspec modifier __declspec modifikátor, který zmocňuje, statické a globální proměnné existují jeden proces.__declspec modifier that mandates that static and global variables exist per process.
Reflexe (C++/CLI)Reflection (C++/CLI) Ukazuje CLR verze informací o typu za běhu.Demonstrates the CLR version of run-time type information.
řetězecString Tento článek popisuje kompilátoru převod z řetězcových literálů na String.Discusses compiler conversion of string literals to String.
Předávání typů (C++/CLI)Type Forwarding (C++/CLI) Přesun typu do přesouvání sestavení na jiné sestavení umožňuje, aby se klientský kód nebude muset být překompilovány.Enables the movement of a type in a shipping assembly to another assembly so that client code does not have to be recompiled.
Uživatelsky definované atributyUser-Defined Attributes Ukazuje, uživatelsky definované atributy.Demonstrates user-defined attributes.
#using – direktiva#using Directive Importuje externí sestavení.Imports external assemblies.
Dokumentace XMLXML Documentation Vysvětluje dokumentace kódu XML pomocí /DOC (zpracování dokumentačních komentářů) (C/C++)Explains XML-based code documentation by using /doc (Process Documentation Comments) (C/C++)

Viz takéSee Also

.NET – programování s C + +/ CLI (Visual C++) .NET Programming with C++/CLI (Visual C++)
Nativní funkce a vzájemná funkční spolupráce rozhraní .NETNative and .NET Interoperability