interior_ptr (C++/CLI)
Penunjuk interior mendeklarasikan penunjuk ke dalam jenis referensi, tetapi tidak ke objek itu sendiri. Penunjuk interior dapat menunjuk ke handel referensi, jenis nilai, gagang jenis kotak, anggota jenis terkelola, atau ke elemen array terkelola.
Semua Runtime
(Tidak ada keterangan untuk fitur bahasa ini yang berlaku untuk semua runtime.)
Windows Runtime
(Tidak ada keterangan untuk fitur bahasa ini yang hanya berlaku untuk Windows Runtime.)
Persyaratan
Opsi pengkompilasi: /ZW
Runtime Bahasa Umum
Contoh sintaks berikut menunjukkan penunjuk interior.
Sintaks
cli::interior_ptr<cv_qualifier type> var = &initializer;
Parameter
cv_qualifier
const
atau volatile
kualifikasi.
jenis
Jenis penginisialisasi.
var
Nama variabel interior_ptr .
initializer
Anggota jenis referensi, elemen array terkelola, atau objek lain yang dapat Anda tetapkan ke pointer asli.
Keterangan
Pointer asli tidak dapat melacak item karena lokasinya berubah pada tumpukan terkelola, yang dihasilkan dari pengumpul sampah yang memindahkan instans objek. Agar penunjuk merujuk ke instans dengan benar, runtime perlu memperbarui pointer ke objek yang baru diposisikan.
interior_ptr mewakili superset fungsionalitas pointer asli. Oleh karena itu, apa pun yang dapat ditetapkan ke pointer asli juga dapat ditetapkan ke interior_ptr. Penunjuk interior diizinkan untuk melakukan serangkaian operasi yang sama dengan pointer asli, termasuk perbandingan dan aritmatika pointer.
Penunjuk interior hanya dapat dideklarasikan pada tumpukan. Penunjuk interior tidak dapat dinyatakan sebagai anggota kelas.
Karena penunjuk interior hanya ada di tumpukan, mengambil alamat penunjuk interior menghasilkan pointer yang tidak dikelola.
interior_ptr memiliki konversi implisit ke bool
, yang memungkinkan penggunaannya dalam pernyataan kondisional.
Untuk informasi tentang cara mendeklarasikan pointer interior yang menunjuk ke objek yang tidak dapat dipindahkan pada tumpukan yang dikumpulkan sampah, lihat pin_ptr.
interior_ptr berada di namespace cli. Lihat Namespace Platform, default, dan cli untuk informasi selengkapnya.
Untuk informasi selengkapnya tentang penunjuk interior, lihat
Cara: Mendeklarasikan dan Menggunakan Penunjuk Interior dan Array Terkelola (C++/CLI)
Cara: Mendeklarasikan Jenis Nilai dengan Kata Kunci interior_ptr (C++/CLI)
Cara: Fungsi Kelebihan Beban dengan Penunjuk Interior dan Penunjuk Asli (C++/CLI)
Cara: Mendeklarasikan Penunjuk Interior dengan Kata Kunci const (C++/CLI)
Persyaratan
Opsi pengkompilasi: /clr
Contoh
Sampel berikut menunjukkan cara mendeklarasikan dan menggunakan penunjuk interior ke dalam jenis referensi.
// interior_ptr.cpp
// compile with: /clr
using namespace System;
ref class MyClass {
public:
int data;
};
int main() {
MyClass ^ h_MyClass = gcnew MyClass;
h_MyClass->data = 1;
Console::WriteLine(h_MyClass->data);
interior_ptr<int> p = &(h_MyClass->data);
*p = 2;
Console::WriteLine(h_MyClass->data);
// alternatively
interior_ptr<MyClass ^> p2 = &h_MyClass;
(*p2)->data = 3;
Console::WriteLine((*p2)->data);
}
1
2
3