Share via


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

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

Baca juga

Ekstensi Komponen untuk .NET dan UWP