¿Qué significa el símbolo de intercalación ('^') en C++/CLI?

Resuelto Owen asked hace 16 años • 8 respuestas

Acabo de encontrar este código y algunas búsquedas en Google no arrojan ninguna explicación de esta sintaxis misteriosa (para mí).

Hashtable^ tempHash = gcnew Hashtable(iterators_);

IDictionaryEnumerator^ enumerator = tempHash->GetEnumerator();

¿Qué diablos significa el signo de intercalación? (Esto gcnewtambién es nuevo para mí y lo pregunté aquí ).

Owen avatar Oct 15 '08 02:10 Owen
Aceptado

Esto es C++/CLI y el símbolo de intercalación es el equivalente administrado de un * (puntero) que en la terminología de C++/CLI se denomina "identificador" de un "tipo de referencia" (ya que aún puede tener punteros no administrados).

(Gracias a Aardvark por señalar la mejor terminología).

Rob Walker avatar Oct 14 '2008 19:10 Rob Walker
// here normal pointer
P* ptr = new P; // usual pointer allocated on heap
P& nat = *ptr; // object on heap bind to native object

//.. here CLI managed 
MO^ mngd = gcnew MO; // allocate on CLI heap
MO% rr = *mngd; // object on CLI heap reference to gc-lvalue

En general, el puntuador %es to ^como el puntuador &es to *. En C++ el &operador unario está en C++/CLI el %operador unario.

Mientras que &ptrproduce a P*, %mngdproduce en MO^.

salomon avatar Jan 17 '2013 11:01 salomon