ti-enxame.com

Qual é o símbolo "^" em C ++?

Um novo símbolo entrou na especificação da linguagem C++ enquanto eu dormia embaixo de uma pedra?

Acabei de encontrar a seguinte pergunta:

Restringir caixa de texto para aceitar apenas números de 10 dígitos

O que sugere que o símbolo '^' faz parte do C++ (não no significado herdado de um XOR bit a bit)

É assim?

Se sim, o que isso significa? (Tentei pesquise na google mas o Google não encontrou respostas satisfatórias)

27
Android Eve

No C++, o símbolo “^” é o operador bit a bit exclusivo ou (xor). Por um único bit você tem 0 ^ 0 = 1 ^ 1 = 0 e 0 ^ 1 = 1 ^ 0 = 1.

No entanto, na pergunta que você está fazendo referência, faz parte da sintaxe especial da Microsoft para desenvolvimento de C++ na plataforma .NET conhecida como C++/CLI ou It Just Works .

A memória no .NET é coletada como lixo e as referências a objetos terão que ser rastreadas. Isso torna impossível fazer referência a esses objetos usando um ponteiro C++ normal. A Microsoft decidiu reutilizar o símbolo “^” para declarar uma variável semelhante a um ponteiro que pode fazer referência a um objeto no heap gerenciado.

^ (Identificador para objeto no heap gerenciado)

35
Martin Liversage

No Visual C++, ^ representa um identificador para um objeto gerenciado. Essencialmente, o que em C # seria uma referência. Aloque-os com gcnew em vez de new, e eles serão coletados para você. É assim que o Visual C++ interage com a CLI.

15
Nick Lewis

Na resposta referenciada, não faz parte da linguagem C++ padrão, faz parte da linguagem C++/CLI que a Microsoft criou para a interoperabilidade .NET. Nesse idioma, ^ significa um "ponteiro para a memória gerenciada".

11
Joel

A sintaxe '^' refere-se a referência de rastreamento in C++/CLI , uma extensão da Microsoft para C++ que permite a interação com o código gerenciado.

4
Stu Mackellar

Não faz parte do C++ padrão. Faz parte do C++ gerenciado (a linguagem da Microsoft é muito parecida com o C++ for .NET). Significa "uma referência a ----" da mesma maneira que um "*" significa "Um ponteiro para -----" é o Padrão C++.

1
James Curran