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

Visual C++ poskytuje jazyková rozšíření pomohou program pro platformy běhového prostředí.Visual C++ provides language extensions to help you program against runtime platforms. Pomocí C + +/ CX, můžete naprogramovat aplikace pro univerzální platformu Windows a součástí, které kompilace nativního kódu.By using C++/CX, you can program Universal Windows Platform apps and components that compile to native code. I když aplikace pro univerzální platformu Windows můžete vytvořit pomocí programování přímo na rozhraní Windows Runtime COM pomocí C + +/ CX, můžete pracovat s konstruktory výjimky a další moderní verze jazyka C++ programování idioms.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. Chcete-li povolit C++ programování v spravovaného spouštění 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 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. Kompilace aplikaci, kterou chcete spustit v prostředí Windows Runtime, zadejte /ZW – možnost kompilátoru.To compile your app to run on the Windows Runtime, specify the /ZW compiler option. Kompilace jeho spuštění v 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 automaticky nastavit pomocí sady Visual Studio k vytvoření projektu.These switches are set automatically when you use Visual Studio to create a project.

Další informace o tom, jak vytvářet aplikace pro univerzální platformu Windows v jazyce C++ najdete 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ána v části s Ecma C + +/ CLI standardní.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ých mezer.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 běžný identifikátor je slovo "ref" 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 zkombinují do formuláře 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 zpracovaná jako kontextová v závislosti na druhu příkaz, který obsahuje a jeho umístění v tomto příkazu.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 "vlastnost" může být identifikátor nebo ho můžou deklarovat zvláštní druh člen 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 uvádí klíčová slova 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
ref class

ref struct
NeNo Deklaruje třídu.Declares a class. Třídy a strukturyClasses and Structs
value class

value struct
NeNo Deklaruje – hodnotová třída.Declares a value class. Třídy a strukturyClasses and Structs
interface class

interface struct
NeNo Deklaruje rozhraní.Declares an interface. Třída rozhraníinterface class
enum class

enum struct
NeNo Deklaruje výčet.Declares an enumeration. enum – třídaenum class
property AnoYes Deklaruje vlastnost.Declares a property. propertyproperty
delegate AnoYes Deklaruje delegáta.Declares a delegate. delegate (rozšíření komponent C++)delegate (C++ Component Extensions)
event AnoYes Deklaruje událost.Declares an event. eventevent

override – specifikátoryOverride Specifiers

K určení chování přepsání pro odvození můžete použít následující klíčová slova.You can use the following keywords to qualify override behavior for derivation. I když new – klíčové slovo není rozšíření c++, je uvedena jako zde protože je možné použít v kontextu Další.Although the new keyword is not an extension of C++, it is listed here because it can be used in an additional context. Některé specifikátory platí také pro nativní programování.Some specifiers are also valid for native programming. Další informace najdete v tématu postupy: deklarace 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
abstract AnoYes Označuje, že funkce nebo třídy jsou abstraktní.Indicates that functions or classes are abstract. abstractabstract
new NeNo Označuje, že je 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)
override 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
sealed 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

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

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

Různé klíčová slovaMiscellaneous Keywords

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

– Klíčové slovoKeyword Závislé na kontextuContext sensitive ÚčelPurpose OdkazReference
finally AnoYes Určuje výchozí chování handlings výjimka.Indicates default exception handlings behavior. Zpracování výjimekException Handling
for each, in NeNo Vytvoří výčet prvků kolekce.Enumerates elements of a collection. for each, infor each, in
gcnew NeNo Přiděluje typy v haldě uvolňování paměti.Allocates types on the garbage-collected heap. Použít místo new a delete.Use instead of new and delete. nové, gcnew REFref new, gcnew
ref new AnoYes Přiděluje typu prostředí Windows Runtime.Allocates a Windows Runtime type. Použít místo new a delete.Use instead of new and delete. nové, gcnew REFref new, gcnew
initonly AnoYes Označuje členem lze inicializovat pouze v prohlášení nebo ve statického konstruktoru.Indicates that a member can only be initialized at declaration or in a static constructor. initonly (C++/CLI)initonly (C++/CLI)
literal AnoYes Vytvoří literálu proměnnou.Creates a literal variable. literálliteral
nullptr NeNo Označuje, že popisovač nebo ukazatel neodkazuje na objekt.Indicates that a handle or pointer does not point at an object. nullptrnullptr

Konstrukce šablonyTemplate Constructs

Následující jazykové konstrukty jsou implementované jako šablona, místo 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
array Deklaruje pole.Declares an array. PoleArrays
interior_ptr (Jenom CLR) Body k datům v odkazového typu.(CLR only) Points to data in a reference type. interior_ptr (C++/CLI)interior_ptr (C++/CLI)
pin_ptr (Jenom 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_cast Určuje a provede metodu optimální přetypování pro typ modulu runtime.Determines and executes the optimal casting method for a runtime type. safe_castsafe_cast
typeid (Jenom CLR) Načte System.Type objekt, který popisuje daný typ nebo objekt.(CLR only) Retrieves a System.Type object that describes the given type or object. typeidtypeid

DeklarátoryDeclarators

Následující deklarátory typ dá pokyn modulu runtime automaticky Správa životního cyklu a odstranění přidělené 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 prostředí Windows Runtime nebo CLR objekt, který je automaticky odstraněn, 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 sledovací odkaz; To znamená, odkaz na prostředí Windows Runtime nebo CLR objekt, který je automaticky odstraněn, 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) (Prostředí Windows Runtime a CLR) Umožňuje použití 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) (Prostředí Windows Runtime a CLR) Povolí funkci, kterou chcete 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 integrální typy C++.Lists the CLR types that are used in place of C++ integral types.
doména AppDomain __declspec – modifikátorappdomain __declspec modifier __declspecModifikátor, který vyžaduje, aby statické a globální proměnné existovat jednotlivé domény aplikace.__declspec modifier that mandates that static and global variables exist per appdomain.
Přetypování ve stylu jazyka pomocí možnosti/CLR (C + +/ CLI)C-Style Casts with /clr (C++/CLI) Popisuje, jak se interpretují přetypování ve stylu jazyka.Describes how C-style casts are interpreted.
__clrcall konvence volání__clrcall calling convention Označuje kompatibilní se standardem CLR konvence volání.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 členské funkce můžete přepsat libovolný členy.Demonstrates how member functions can override arbitrary members.
Přátelská sestavení (C++)Friend Assemblies (C++) Popisuje, jak klienta sestavení přístupné všechny typy v komponentu sestavení.Discusses how a client assembly can access all types in an assembly component.
ZabaleníBoxing Demonstruje podmínky v hodnot, které jsou do pole typů.Demonstrates the conditions in which values types are boxed.
Podpora kompilátoru pro typové vlastnostiCompiler Support for Type Traits Popisuje, jak zjistit vlastnosti typů v době kompilace.Discusses how to detect characteristics of types at compile time.
spravované, nespravované direktivách pragmamanaged, unmanaged pragmas Ukazuje, jak spravovaných a nespravovaných funkcí mohou společně existovat ve stejném modulu.Demonstrates how managed and unmanaged functions can co-exist in the same module.
proces __declspec – modifikátorprocess __declspec modifier __declspecModifikátor, který vyžaduje, aby statické a globální proměnné existovat podle procesu.__declspec modifier that mandates that static and global variables exist per process.
Reflexe (C++/CLI)Reflection (C++/CLI) Demonstruje verzi informace běhového typu CLR.Demonstrates the CLR version of run-time type information.
ŘetězecString Popisuje převod kompilátoru textových literálů k String.Discusses compiler conversion of string literals to String.
Předávání typů (C++/CLI)Type Forwarding (C++/CLI) Přesun k typu v sestavení přesouvání do jiného sestavení umožňuje, aby kód klienta není nutné zopakovat.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 Demonstruje uživatelsky definované atributy.Demonstrates user-defined attributes.
#using – direktiva#using Directive Importuje externí sestavení.Imports external assemblies.
Dokumentace XMLXML Documentation Vysvětluje kódu XML na dokumentaci 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