ref new, gcnew (Extensiones de componentes de C++)
La palabra clave de agregado ref new asigna una instancia de un tipo que se recolecta con los elementos no utilizados cuando el objeto queda inaccesible y que devuelve un identificador (^) al objeto asignado.
Todos los runtimes
La memoria de una instancia de un tipo asignado por ref new se desasignó automáticamente.
Una operación de ref new produce OutOfMemoryException si no puede asignar memoria.
Para obtener más información acerca de cómo se asigna y desasigna la memoria de los tipos de C++ nativo, vea los operadores new y delete.
Windows en tiempo de ejecución
Use ref new para asignar memoria para los objetos de Windows en tiempo de ejecución cuya duración desee administrar automáticamente. El objeto se desasigna automáticamente cuando su recuento de referencia llega a cero, lo que ocurre después de que la última copia de la referencia haya salido del ámbito. Para obtener más información, vea Clases y structs de referencia.
Requisitos
Opción del compilador: /ZW
Common Language Runtime
La memoria de un tipo administrado (referencia o tipo de valor) se asigna mediante gcnew y se desasigna mediante la recolección de elementos no utilizados.
Requisitos
Opción del compilador: /clr
Ejemplos
Ejemplo
En el ejemplo siguiente se utiliza un objeto gcnew para asignar un objeto de mensaje.
// 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;
//...
}
Ejemplo
En el ejemplo siguiente se usa gcnew para crear un tipo de valor de conversión boxing para su uso como tipo de referencia.
// 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;
}
Resultados
Vea también
Conceptos
Extensiones de componentes para plataformas de tiempo de ejecución