yeni başvuru, gcnew (C++ Bileşen Uzantıları)
ref new bileşik anahtar sözcüğü nesne erişilemez olduğunda çöp toplanan bir türün bir örneğini ayırır, ve ayrılan nesne için bir işleyici (^) döndürür.
Tüm Çalışma Zamanları
ref new tarafından ayrılan bir tür örneği için bellek otomatik olarak serbest bırakılır.
Bir ref new işlemi eğer bellek ayıramıyorsa OutOfMemoryException harekete geçirir.
Yerel C++ türleri için nasıl bellek ayrıldığı ve serbest bırakıldığı hakkında daha fazla bilgi için, bkz. new ve delete işleçleri
Windows Çalışma Zamanı
Ömrünü otomatik olarak yönetmek istediğiniz Windows Çalışma Zamanı nesneleri için bellek ayırmak için ref new kulanın. Nesne başvuru sayısı sıfır olduğunda otomatik olarak serbest bırakılır, ki bu başvurunun son kopyası kapsam dışına çıktığında gerçekleşir. Daha fazla bilgi için, bkz. Başvuru sınıfları ve yapıları.
Gereksinimler
Derleyici seçeneği: /ZW
Ortak Dil Çalışma Zamanı
Yönetilen bir tür (başvuru ya da değer türü) için bellek gcnew ile ayrılır, ve çöp toplama ile serbest bırakılır.
Gereksinimler
Derleyici seçeneği: /clr
Örnekler
Örnek
Aşağıdaki örnek bir Message nesnesi ayırmak için gcnew kullanır.
// 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;
//...
}
Örnek
Aşağıdaki örnek bir başvuru türü gibi kullanmak için gcnew kullanarak bir kutulu değer türü oluşturur.
// 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;
}
Çıktı