ref new, gcnew (extensions du composant C++)
Le mot clé d'agrégat ref new alloue une instance d'un type qui est récupéré par le garbage collector lorsque l'objet est inaccessible et qui retourne un handle (^) à l'objet alloué.
Tous les runtimes
La mémoire pour une instance de type qui est allouée par ref new est libérée automatiquement.
Une opération ref new lève une exception OutOfMemoryException si elle ne peut pas allouer de mémoire.
Pour plus d'informations sur la façon dont la mémoire pour les types natifs C++ est allouée et libérée, consultez les nouveaux opérateurs et les opérateurs de suppression.
Windows Runtime
Utilisez ref new pour allouer de la mémoire aux objets Windows Runtime dont vous souhaitez administrer automatiquement la durée de vie.L'objet est libéré automatiquement lorsque son décompte de références atteint zéro, ce qui se produit lorsque la dernière copie de la référence est hors de portée.Pour plus d'informations, consultez Classes et structures de référence.
Configuration requise
Option du compilateur : /ZW
Common Language Runtime
La mémoire pour un type managé (référence ou type valeur) est allouée par gcnew et libérée en utilisant le garbage collection.
Configuration requise
Option du compilateur : /clr
Exemples
Exemple
L'exemple suivant illustre l'utilisation d'un objet gcnew pour allouer un objet Message.
// mcppv2_gcnew_1.cpp
// compile with: /clr
ref struct Message {
System::String^ sender;
System::String^ receiver;
System::String^ data;
};
int main() {
Message^ h_Message = gcnew Message;
//...
}
Exemple
L'exemple suivant utilise gcnew pour créer un type valeur boxed à utiliser comme un type référence.
// example2.cpp : main project file.
// compile with /clr
using namespace System;
value class Boxed {
public:
int i;
};
int main()
{
Boxed^ y = gcnew Boxed;
y->i = 32;
Console::WriteLine(y->i);
return 0;
}
Sortie