interior_ptr (C++/CLI)
Указатель на внутренний указатель объявляется внутри ссылочному типу, а не к объекту.Внутренний указатель может указывать на маркер ссылки, тип значения, положенному упакован в маркер управляемого типа, члену типа или элемента управляемого массива.
AfxWndProc
(Нет примечания для данной функции языка, которые применяются ко всем средам выполнения).
Колесо
(Нет примечания для данной функции языка, которые применяются только к окнам среды выполнения).
Требования
Параметр компилятора: /ZW
Среда CLR
В следующем примере показан синтаксис является внутренним указателем.
Синтаксис
cli::interior_ptr<cv_qualifier type> var = &initializer;
Параметры
cv_qualifier
const или квалификаторы volatile.тип
Тип инициализатор.var
Имя переменной interior_ptr.инициализатор
Элемент ссылочного типа элемента управляемого массива или любого другого объекта, который можно присвоить собственный указатель.
Заметки
Собственный указатель не может отследить элемент по мере его расположение изменяет в управляемой куче, которая является результатом сборщика мусора при перемещении экземпляров объекта.Для этого указателя правильно, который необходимо обратиться к экземпляру, среды выполнения необходимо обновить указатель на вновь, расположенному объекту.
interior_ptr представляет надмножество функциональных возможностей собственного указателя.Таким образом, любые конструкции, которое может быть присвоено собственный указатель можно также присвоить interior_ptr.Внутренний указатель разрешено выполнять один и тот же набор операций, как собственные указатели, включая сравнения и арифметические операции указателя.
Внутренний указатель может быть объявлены в стеке.Внутренний указатель не могут быть объявлены как члена класса.
Поскольку внутренние указатели существуют только в стеке, получающие адрес указателя нутряного создает неуправляемый указатель.
interior_ptr имеет неявное преобразование к bool, разрешающее для использования в условных операторов.
Сведения об объявлении внутренний указатель, который указывает на объект, не может быть перемещена на мусор-собранной куче см. в разделе pin_ptr.
interior_ptr в пространстве имен инфраструктуры cli.Дополнительные сведения см. в разделе Пространства имен platform, default и cli (расширения компонентов C++).
Дополнительные сведения о нутряных указателей см.
Требования
Параметр компилятора: /clr
Примеры
Пример
В следующем образце показано, как объявить и использовать внутренний указатель на ссылочный тип.
// 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);
}
Output