interior_ptr (C++/CLI)
Wnętrza wskaźnik deklaruje wskaźnik do wewnątrz typ odwołania, ale nie do samego obiektu.Wewnętrzne wskaźnik może wskazywać do uchwytu odniesienia, typ wartości, dojście typu prostokątnych, członkiem typu zarządzanego lub do elementu tablicy.
Wszystkie środowiska wykonawcze
(Nie ma żadnych uwag dla tej funkcji języka, które mają zastosowanie do wszystkich programów środowiska uruchomienia.)
Środowisko wykonawcze systemu Windows
(Nie ma żadnych uwag dla tej funkcji języka, które mają zastosowanie do Środowiska wykonawczego systemu Windows.)
Wymagania
Opcja kompilatora: /ZW
Środowisko uruchomieniowe języka wspólnego
W poniższym przykładzie składni pokazuje wewnętrznego wskaźnika.
Składnia
cli::interior_ptr<cv_qualifier type> var = &initializer;
Parametry
cv_qualifier
Const lub volatile kwalifikatorów.type
Typ initializer.var
Nazwa interior_ptr zmiennej.initializer
Element członkowski typu odwołania, element tablicy lub inny obiekt, który można przypisać do wskaźniku macierzystym.
Uwagi
Wskaźnik macierzysty nie jest w stanie do śledzenia zapasu jako jego zmiany lokalizacji na stercie zarządzanych, co wynika z garbage collector przenoszenie wystąpień obiektu.Aby wskaźnik, aby prawidłowo odnoszą się do wystąpienia środowiska wykonawczego musi zaktualizować wskaźnik do nowo pozycjonowane obiektu.
interior_ptr Stanowi nadzbiór funkcji wskaźniku macierzystym. W związku z tym, wszystko, co można przypisać do wskaźniku macierzystym można również przypisać do interior_ptr. Wewnętrzne wskaźnik może wykonywać ten sam zestaw operacji jako wskaźniki macierzystego, włączając porównanie i arytmetyki.
Wewnętrzne wskaźnik może zostać zadeklarowany tylko na stosie. Wewnętrzne wskaźnik nie można zadeklarować jako członek klasy.
Ponieważ wskaźniki wnętrza istnieje tylko na stosie, biorąc adresu wewnętrznego wskaźnika daje niezarządzanego wskaźnika.
interior_ptrniejawna konwersja ma bool, co pozwala na jego wykorzystanie w instrukcji warunkowych.
Aby uzyskać informacje o uznaniu wnętrza wskaźnik, który wskazuje na obiekt, którego nie można przenieść na stercie zebrane śmieci, zobacz pin_ptr.
interior_ptr jest w przestrzeni nazwy cli. Aby uzyskać więcej informacji, zobacz Przestrzeń nazw platformy, domyślna i cli (C++ Component Extensions).
Więcej informacji na temat wskaźników wewnętrznych zobacz temat
Poradnik: Deklarowanie typów wartości za pomocą słowa kluczowego interior_ptr (C++/CLI)
Poradnik: Funkcje przeładowania z wewnętrznymi i natywnymi wskaźnikami (C++/CLI)
Poradnik: Deklarowanie wewnętrznych wskaźników za pomocą słowa kluczowego const (C++/CLI)
Wymagania
Opcja kompilatora: /clr
Przykłady
Przykład
Poniższy przykład pokazuje zadeklarować i używania wnętrza wskaźnik do typu odwołania.
// 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);
}
Dane wyjściowe
123
Zobacz też
Koncepcje
Component Extensions dla platform środowiska uruchomieniowego