ref new, gcnew (C++/CLI i C++/CX)

Nowe zagregowane słowo kluczowe ref przydziela wystąpienie typu, który jest bezużyteczny, gdy obiekt staje się niedostępny, i zwraca uchwyt (^) do przydzielonego obiektu.

Wszystkie środowiska wykonawcze

Pamięć dla wystąpienia typu przydzielonego przez nowy ref jest automatycznie cofniętą przydział.

Nowa operacja ref zgłasza błąd OutOfMemoryException , jeśli nie może przydzielić pamięci.

Aby uzyskać więcej informacji na temat przydzielania i cofania przydziału pamięci dla natywnych typów języka C++, zobacz nowe i usunięte operatory.

Środowisko wykonawcze systemu Windows

Użyj polecenia ref new, aby przydzielić pamięć dla obiektów środowisko wykonawcze systemu Windows, których okres istnienia ma być administrowany automatycznie. Obiekt jest automatycznie cofany, gdy jego liczba odwołań przechodzi do zera, co występuje po ostatniej kopii odwołania zniknął z zakresu. Aby uzyskać więcej informacji, zobacz Ref classes and structs (Klasy ref i struktury).

Wymagania

Opcja kompilatora: /ZW

środowiska uruchomieniowe w trakcie wykonania

Pamięć dla typu zarządzanego (odwołanie lub typ wartości) jest przydzielana przez gcnew i cofana przydział przy użyciu odzyskiwania pamięci.

Wymagania

Opcja kompilatora: /clr

Przykłady

W poniższym przykładzie użyto biblioteki gcnew do przydzielenia obiektu 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;
  //...
}

W poniższym przykładzie użyto biblioteki gcnew do utworzenia typu wartości pola do użycia, takiego jak typ odwołania.

// 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;
}
32

Zobacz też

Rozszerzenia składników dla platformy .NET i platformy uniwersalnej systemu Windows