Ho iniziato a sviluppare con VC++ 2005 Xpress utilizzando il codice gestito (managed code).
Ho notato che per istanziare una classe si procede nel seguente modo
Leggendo la documentazione ho capito le seguenti cose:codice:MyClass ^mc; // handler su garbage collected heap mc = gcnew MyClass(); allocazione memoria e costruzione oggetto
Per istanziare una classe si dichiara una specie di puntatore usando l'operatore ^ invece del classico *. Inoltre si usa l'operatore gcnew che restituisce appunto un handler (^) di tipo MyClass;
l'allocazione dinamica fatta con ^ non necessita dell'operatore delete e/o delete[] in quanto è il garbge collector a far pulizia automaticamente;
^mc non è un puntatore e non è ammessa alcuna aritmetica su di essi (ho provato a stampare l'indirizzo contenuto in mc con cout << mc; e ho ottenuto un errore).
E' corretto oppure mi è sfuggito qualcosa?
Grazie.