ref new, gcnew (Extensões de Componentes C++)
A palavra-chave ref new agregada aloca uma instância de um tipo que é coletado como lixo quando o objeto se torna inacessível e que retorna um identificador (^) para o objeto alocado.
Todos os tempos de execução
A memória para uma instância de um tipo que é alocado por ref new é desalocada automaticamente.
Uma operação ref new gera OutOfMemoryException se não for capaz de alocar memória.
Para obter mais informações sobre como a memória para tipos C++ nativos é alocada e desalocada, consulte os operadores new e delete.
Tempo de Execução do Windows
Use ref new para alocar memória para objetos do Tempo de Execução do Windows cujo tempo de vida você deseja administrar automaticamente.O objeto é desalocado automaticamente quando a contagem de referência vai para zero, o que ocorre depois que a última cópia da referência saia do escopo.Para obter mais informações, consulte Classes e estruturas de referência.
Requisitos
Opção do compilador: /ZW
Common Language Runtime
A memória para um tipo gerenciado (tipo de referência ou de valor) é alocada por gcnew e desalocada usando a coleta de lixo.
Requisitos
Opção do compilador: /clr
Exemplos
Exemplo
O exemplo a seguir usa gcnew para alocar um objeto Mensagem.
// 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;
//...
}
Exemplo
O exemplo a seguir usa gcnew para criar um tipo de valor convertido para uso como um tipo de referência.
// 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;
}
Saída
Consulte também
Conceitos
Extensões de componente para plataformas de tempo de execução