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.
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