Extensões de componente para plataformas de tempo de execução
Visual C++ fornece extensões de linguagem para ajudá-lo a programar em plataformas de tempo de execução.Usando Extensões de componentes Visual C++ (C++/CX), você pode programar os apps e componentes de Windows Store que compilam para código nativo.Embora você possa criar apps de Windows Store programando diretamente nas interfaces de Tempo de Execução do Windows COM, usando C++/CX, você pode trabalhar com construtores, exceções, e outros modernos linguagem de programação C++.Para ativar a programação C++ em um ambiente de execução gerenciado na plataforma .NET, você pode usar C++/CLI.
Dois tempo de execução, um conjunto de extensões
C++/CX é um subconjunto de C++/CLI.Para as extensões que são comuns a C++/CX e a C++/CLI, a semântica depende se você está buscando o common language runtime (CLR) ou Tempo de Execução do Windowslanguage runtime.Para compilar seu app para executar em Tempo de Execução do Windows, especifique a opção de compilador /ZW .Para compilá-la para executar no CLR, especifique a opção de compilador /clr .Esses switches são definidas automaticamente quando você usa o Visual Studio para criar um projeto.
Para obter mais informações sobre como criar apps de Windows Store em C++, consulte Roadmap for Windows Store apps using C++.
C++/CLI estende o padrão de ISO/ANSI C++, e o é definido no padrão de Ecma C++/CLI .Para obter mais informações, consulte .NET programação no Visual C++.
Palavra-chave de tipo de dados
As extensões de linguagem incluem as palavras-chave agregados, que são palavras-chave que consiste de dois tokens separados por um espaço em branco.Os tokens podem ter um significa que quando eles são usados separada, e outro sinalizado quando são usados juntos.Por exemplo, a palavra “referência” é um identificador comum, e a palavra “classe” são uma palavra-chave que declara uma classe nativo.Mas quando essas palavras são combinadas para formar ref class, a palavra-chave agregado resultante declara uma entidade que é conhecida como uma classe de tempo de execução.
As extensões também incluem palavra-chave contextuais .Uma palavra-chave é tratado como contextual dependendo do tipo da instrução que o contém, e do posicionamento na instrução.Por exemplo, a propriedade “token” pode ser um identificador, ou pode declarar um tipo especial de membro público da classe.
A tabela a seguir lista palavra-chave na extensão de linguagem de C++.
Keyword |
Contextual |
Finalidade |
Referência |
---|---|---|---|
ref class ref struct |
Não |
Declare uma classe. |
|
value class value struct |
Não |
Declare uma classe de valor. |
|
interface class interface struct |
Não |
Declara uma interface. |
|
enum class enum struct |
Não |
Declara uma enumeração. |
|
property |
Sim |
Declara uma propriedade. |
|
delegate |
Sim |
Declara um delegado. |
|
event |
Sim |
Declara um evento. |
Especificadores de substituição
Você pode usar os seguintes palavra-chave para qualificar o comportamento de substituição para a derivação.Embora a palavra-chave de new não é uma extensão de C++, é listado aqui porque pode ser usado em um contexto extra.Alguns especificadores também são válidos para programação nativo.Para obter mais informações, consulte Como: declarar especificadores de substituição em compilações nativos.
Keyword |
Contextual |
Finalidade |
Referência |
---|---|---|---|
abstract |
Sim |
Indica que as funções ou classes são abstratas. |
|
new |
Não |
Indica que uma função não é uma substituição de uma versão da classe base. |
|
override |
Sim |
Indica que um método deve ser uma substituição de uma versão da classe base. |
|
sealed |
Sim |
Impede que classes sejam usadas como classes base. |
Palavra-chave para os genéricos
As seguintes palavras chave foram adicionados para suportar tipos genéricos.Para obter mais informações, consulte Genéricos (Extensões de Componentes C++).
Keyword |
Contextual |
Finalidade |
---|---|---|
generic |
Não |
Declara um tipo genérico. |
where |
Sim |
Especifica as restrições que são aplicadas a um parâmetro de tipo genérico. |
Palavra-chave variados
As seguintes palavras chave foram adicionados às extensões C++.
Keyword |
Contextual |
Finalidade |
Referência |
---|---|---|---|
finally |
Sim |
Indica o comportamento padrão de manipulação de exceção. |
|
for each, in |
Não |
Enumera os elementos de uma coleção. |
|
gcnew |
Não |
Atribui tipos no heap lixo- coletado.Use em vez de new e de delete. |
|
ref new |
Sim |
Atribui um tipo de Tempo de Execução do Windows .Use em vez de new e de delete. |
|
initonly |
Sim |
Indica que um membro só pode ser inicializado na declaração ou em um construtor estático. |
|
literal |
Sim |
Cria uma variável literal. |
|
nullptr |
Não |
Indica que um identificador ou um ponteiro não apontam em um objeto. |
Compilações de modelo
As seguintes compilações da linguagem são implementadas como modelos, em vez de como palavra-chave.Se você especificar a opção de compilador /ZW , são definidos no namespace de lang .Se você especificar a opção de compilador /clr , são definidos no namespace de cli .
Keyword |
Finalidade |
Referência |
---|---|---|
array |
Declara uma matriz. |
|
interior_ptr |
(CLR) somente os pontos a dados em um tipo de referência. |
|
pin_ptr |
(CLR) somente aponta para tipos de referência CLR para suprimir temporariamente o sistema de coleta de lixo. |
|
safe_cast |
Determina e executa o melhor método de conversão para um tipo de tempo de execução. |
|
typeid |
(CLR) somente recupera um objeto de System.Type que descreve o tipo ou objeto especificado. |
Declaradores
Os seguintes declarators do tipo instruem o tempo de execução para gerenciar automaticamente o tempo de vida e exclusão de objetos atribuídos.
Operator |
Finalidade |
Referência |
---|---|---|
^ |
Declara um identificador para um objeto; isto é, um ponteiro para Tempo de Execução do Windows objeto ou CLR que é excluído automaticamente quando não está mais útil. |
Operador Handle to Object (^) (Extensões de Componentes C++) |
% |
Declara uma referência de controle; ou seja, uma referência a Tempo de Execução do Windows objeto ou CLR que é excluída automaticamente quando não está mais útil. |
Operador de Referência de Acompanhamento (Extensões de Componentes C++) |
Compilações adicionais e tópicos relacionados
Esta seção lista construções de programação adicionais, e tópicos que pertencem ao CLR.
Tópico |
Descrição |
---|---|
(Tempo de Execução do Windows e CLR) permite o uso das palavras-chave como identificadores. |
|
(Tempo de Execução do Windows e CLR) permite uma função para ser um número variável de argumentos. |
|
.NET Framework equivalentes para tipos C++ nativo (C + + / CLI) |
Lista os tipos de CLR que são usados no lugar dos tipos integrais C++. |
Modificador deAppDomain__declspec |
o modificador de__declspec que mandato esse estáticos e variáveis globais existe. por appdomain |
Descreve como conversões ctype de estilo são interpretadas. |
|
__clrcall que chama a convenção |
Indica CLR- correspondente a convenção de chamada. |
__cplusplus_cli |
|
Descreve como definir seus próprios atributos CLR. |
|
Fornece uma visão geral de manipulação de exceção. |
|
Demonstra como as funções de membro podem substituir membros arbitrários. |
|
Discute como um cliente que o assembly pode acessar o qualquer tipo em um componente do assembly. |
|
Demonstra as condições em que os tipos de valores são convertidos. |
|
Suporte para Compilador de Traços de Tipo (Extensões de Componentes C++) |
Discute como detectar em tempo de compilação características de tipos. |
Pragmas degerenciado, não gerenciado |
Demonstra como as funções gerenciados e não gerenciados podem coexistir no mesmo módulo. |
Modificador deprocesso__declspec |
o modificador de__declspec que mandato esse estáticos e variáveis globais existe pelo processo. |
Demonstra a versão CLR de informações de tipo em tempo de execução. |
|
Descreve conversão do compilador de literais de cadeia de caracteres a String. |
|
Permite que a movimentação de um tipo em um conjunto de enviar para outro conjunto de modo que o código do cliente não tem que ser recompilado. |
|
Atributos Definidos pelo Usuário (Extensões de Componentes C++) |
Demonstra atributos definidos pelo usuário. |
Importa os módulos (assemblies) externos. |
|
Explica com base na documentação de código usando /doc (processo documentação comentários) (C/C++) |