Share via


ref baru, gcnew (C++/CLI dan C++/CX)

Kata kunci agregat baru ref mengalokasikan instans jenis sampah yang dikumpulkan ketika objek menjadi tidak dapat diakses, dan yang mengembalikan handel (^) ke objek yang dialokasikan.

Semua Runtime

Memori untuk instans jenis yang dialokasikan oleh ref baru dibatalkan alokasinya secara otomatis.

Operasi baru ref melempar OutOfMemoryException jika tidak dapat mengalokasikan memori.

Untuk informasi selengkapnya tentang bagaimana memori untuk jenis C++ asli dialokasikan dan dibatalkan alokasinya, lihat operator baru dan hapus.

Windows Runtime

Gunakan ref baru untuk mengalokasikan memori untuk objek Windows Runtime yang masa pakainya ingin Anda kelola secara otomatis. Objek secara otomatis dibatalkan alokasinya ketika jumlah referensinya masuk ke nol, yang terjadi setelah salinan terakhir referensi telah keluar dari cakupan. Untuk informasi selengkapnya, lihat Kelas dan struktur Ref.

Persyaratan

Opsi pengkompilasi: /ZW

Runtime Bahasa Umum

Memori untuk jenis terkelola (jenis referensi atau nilai) dialokasikan oleh gcnew, dan dialokasikan dengan menggunakan pengumpulan sampah.

Persyaratan

Opsi pengkompilasi: /clr

Contoh

Contoh berikut menggunakan gcnew untuk mengalokasikan objek Pesan.

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

Contoh berikut menggunakan gcnew untuk membuat jenis nilai kotak untuk digunakan seperti jenis referensi.

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

Baca juga

Ekstensi Komponen untuk .NET dan UWP