interior_ptr (C++/CLI)
İç işaretçi , başvuru türünün içindeki işaretçiyi bildirir, ancak nesnenin kendisine bildirmez. İç işaretçi bir başvuru tutamacını, değer türünü, kutulanmış tür tutamacını, yönetilen türün üyesini veya yönetilen dizinin bir öğesini işaret edebilir.
Tüm Çalışma Zamanları
(Bu dil özelliği için tüm çalışma zamanları için geçerli olan hiçbir açıklama yoktur.)
Windows Çalışma Zamanı
(Bu dil özelliği için yalnızca Windows Çalışma Zamanı geçerli olan bir açıklama yoktur.)
Gereksinimler
Derleyici seçeneği: /ZW
Ortak Dil Çalışma Zamanı
Aşağıdaki söz dizimi örneğinde bir iç işaretçi gösterilmektedir.
Sözdizimi
cli::interior_ptr<cv_qualifier type> var = &initializer;
Parametreler
cv_qualifier
const
veya volatile
niteleyiciler.
type
Başlatıcının türü.
var
interior_ptr değişkeninin adı.
Başlatıcı
Bir başvuru türünün üyesi, yönetilen dizinin öğesi veya yerel işaretçiye atayabileceğiniz başka bir nesne.
Açıklamalar
Yerel işaretçi, yönetilen yığında konumu değiştikçe bir öğeyi izleyemiyor ve bu da atık toplayıcının bir nesnenin örneklerini taşımasından kaynaklanır. bir işaretçinin örneğe doğru şekilde başvurması için çalışma zamanının işaretçiyi yeni konumlandırılan nesneye güncelleştirmesi gerekir.
interior_ptr, yerel işaretçinin işlevselliğinin üst kümesini temsil eder. Bu nedenle, yerel işaretçiye atanabilecek her şey de bir interior_ptr atanabilir. İç işaretçinin, karşılaştırma ve işaretçi aritmetiği de dahil olmak üzere yerel işaretçilerle aynı işlem kümesini gerçekleştirmesine izin verilir.
İç işaretçi yalnızca yığında bildirilebilir. İç işaretçi bir sınıfın üyesi olarak bildirilemez.
İç işaretçiler yalnızca yığında bulunduğundan, bir iç işaretçinin adresini almak yönetilmeyen bir işaretçi verir.
interior_ptr, koşullu deyimlerde kullanılmasına bool
izin veren örtük bir dönüştürmeye sahiptir.
Çöp toplama yığınında taşınamayan bir nesneye işaret eden bir iç işaretçi bildirme hakkında bilgi için bkz . pin_ptr.
interior_ptr cli ad alanındadır. Daha fazla bilgi için bkz . Platform, varsayılan ve cli Ad Alanları .
İç işaretçiler hakkında daha fazla bilgi için bkz.
Nasıl yapılır: İç İşaretçiler ve Yönetilen Diziler Bildirme ve Kullanma (C++/CLI)
Nasıl yapılır: interior_ptr Anahtar Sözcüğü ile Değer Türleri Bildirme (C++/CLI)
Nasıl yapılır: İç İşaretçiler ve Yerel İşaretçilerle İşlevleri Tekrar Yükleme (C++/CLI)
Nasıl yapılır: const Anahtar Sözcüğü ile İç İşaretçileri Bildirme (C++/CLI)
Gereksinimler
Derleyici seçeneği: /clr
Örnekler
Aşağıdaki örnekte, bir iç işaretçinin başvuru türüne nasıl bildirilip kullanılacağı gösterilmektedir.
// 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