Aracılığıyla paylaş


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 boolizin 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.

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

Ayrıca bkz.

.NET ve UWP İçin Bileşen Uzantıları