Sdílet prostřednictvím


ref new, gcnew (rozšíření komponent C++)

Agregační klíčové slovo ref new přiděluje paměť instanci typu, která je automaticky uvolněna, přestane-li objekt být přístupný, a vrací popisovač (^) alokovaného objektu.

Všechny moduly runtime

Paměť pro instanci typu přidělená pomocí klíčového slova ref new je uvolňována automaticky.

Není-li operace ref new schopna přidělit paměť, vyvolá výjimku OutOfMemoryException.

Další informace o tom, jak je paměť pro nativní typy jazyka C++ přidělována a uvolňována, naleznete v tématu týkajícím se operátorů new a delete.

prostředí Windows Runtime

Chcete-li přidělit paměť objektům Windows Runtime s automaticky spravovanou životností, použijte klíčové slovo ref new.Objekt je automaticky uvolněn z paměti, jakmile počet jeho odkazů klesne na nulu, k čemuž dojde po překročení rozsahu platnosti poslední kopie odkazu.Další informace naleznete v tématu týkajícím se tříd a struktur ref.

Požadavky

Možnost kompilátoru: /ZW

Common Language Runtime

Paměť pro spravované typy (odkaz nebo typ hodnot) je přidělována příkazem gcnew a uvolňována automatickým uvolňováním paměti.

Požadavky

Možnost kompilátoru: /clr

Příklady

Příklad

Následující příklad přiděluje paměť objektu Message pomocí příkazu gcnew.

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

Příklad

Následující příklad pomocí příkazu gcnew vytváří zabalený typ hodnot pro použití jako typ odkazu.

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

Výsledek

  

Viz také

Koncepty

Rozšíření komponent pro platformy běhového prostředí