2009-01-23 8 views
5

¿Está eso relacionado con .NET? Parece ser un puntero de algún tipo, ¿cuál es la diferencia?Veo muchos ejemplos de C++ con el uso de "Foo^bar" - ¿qué es "^"?

Editar:

que en realidad sé que es el operador XOR, pero mira este ejemplo de esta página.

void objectCollection() { 
    using namespace System::Collections; 

    **ArrayList ^as = gcnew ArrayList;** 

    //... } 

¿Qué es esto?

Gracias.

Respuesta

14

Estoy asumiendo que usted está buscando en las construcciones de la forma:

Foo ^bar = gcnew Foo(); 

Tienes razón, en .NET es un Puntero- "como" tipo y forma parte de C++/CLI , no pero no el estándar ISO C++.

Es una referencia a un objeto .NET gestionado y recogido en la basura en lugar de un objeto C++ regular no administrado.

Como el otro cartel sugiere, fuera del mundo .NET o en un contexto de creación no objeto, es el operador XOR.

5

En C++, ese es el operador XOR.

+0

-1 Porque esta respuesta es incorrecta en este contexto. –

+1

+1 para anular el -1 porque la respuesta se dio antes de que la pregunta se editara para incluir el ejemplo. – Naveen

+0

+1 porque es correcto para/C++ /. Managed C++ no es C++. –

0

De hecho, sé que es el operador XOR, pero mire este ejemplo desde this page.

void objectCollection() 
{ 
    using namespace System::Collections; 

    **ArrayList ^as = gcnew ArrayList;** 

    //... 
} 

¿Qué es esto?

+0

Ver más arriba: la instrucción crea un control/referencia a un objeto .NET ArrayList recogido de basura. –

+1

Puede editar su pregunta en lugar de escribir una respuesta, por lo que quedará claro para todos lo que usted quiso decir. ¡Gracias! – splattne

0

Este es un identificador para un tipo de referencia .NET, cuando se usa Managed C++. Ver this.

+0

Eso es C++/CLI - Managed C++ es otra bestia que afortunadamente se dejó de lado. – Eclipse

+0

Gracias por la aclaración, es bueno saber – orip

Cuestiones relacionadas