Compartilhar via


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.

te3ecsc8.collapse_all(pt-br,VS.110).gifRequisitos

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.

te3ecsc8.collapse_all(pt-br,VS.110).gifRequisitos

Opção do compilador: /clr

te3ecsc8.collapse_all(pt-br,VS.110).gifExemplos

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