Udostępnij za pośrednictwem


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

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