Répondre

2

^a été introduit en C++/CLI pour la référence des objets gérés, en remplaçant le signe * utilisé pour les pointeurs d'objets natifs. Donc, avoir deux types, géré et natif, vous devez écrire:

 
class Native 
{ 
}; 

ref class Managed 
{ 
}; 

Native* pn = new Native(); 
Managed^ pm = gcnew Managed(); 

& peut être utilisé pour obtenir le pointeur natif de l'instance de la classe native. Il n'est pas utilisé de la même manière pour les classes gérées, accessibles uniquement à l'aide de références.

 
Native n; 
Native* pn = &n; 
+0

'%' est utilisé dans le code managé pour obtenir un handle de suivi à une variable gérée déclarée à l'aide de la sémantique basée sur la pile, un peu comme '&' prend l'adresse d'une variable de pile dans le code natif. –

2

Vous voulez dire C++/CLI, le nouveau "géré C++" conçu par Microsoft.

  • Type* déclare encore un pointeur natif
  • Type^ déclare une référence à un objet alloué avec gcnew (vous pouvez penser comme un « pointeur sur les objets gérés »)
  • Type& déclare encore natif référence
+0

'Type ^' n'est pas une référence mais une poignée de suivi. 'Type%' est une référence de suivi (gc-aware) à un type géré. –

Questions connexes