Aracılığıyla paylaş


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

te3ecsc8.collapse_all(tr-tr,VS.110).gifGereksinimler

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.

te3ecsc8.collapse_all(tr-tr,VS.110).gifGereksinimler

Derleyici seçeneği: /clr

te3ecsc8.collapse_all(tr-tr,VS.110).gifÖ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ı

  

Ayrıca bkz.

Kavramlar

Çalışma platformları için bileşen uzantıları