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