Sdílet prostřednictvím


interior_ptr (C++/CLI)

Vnitřní ukazatel prohlašuje ukazatel na uvnitř typu odkaz, ale ne samotný objekt.Vnitřní ukazatel můžete ukázat odkaz úchyt, typ hodnoty, krabici typ popisovače, člen spravované typu nebo prvek spravovaného pole.

Všechny knihovny runtime

(Nejsou žádné poznámky pro tuto funkci jazyka, které platí pro všechny knihovny runtime.)

Windows Runtime

(Nejsou žádné připomínky k této funkci jazyka se Windows Runtime.)

y0fh545k.collapse_all(cs-cz,VS.110).gifPožadavky

Volba kompilátoru:/ZW

Modul CLR (Common Language Runtime)

Následující příklad syntaxe ukazuje vnitřní ukazatel.

y0fh545k.collapse_all(cs-cz,VS.110).gifSyntaxe

cli::interior_ptr<cv_qualifier type> var = &initializer;

y0fh545k.collapse_all(cs-cz,VS.110).gifParametry

  • cv_qualifier
    Const nebo volatile kvalifikátory.

  • Typ
    Typ inicializátor.

  • var
    Název interior_ptr proměnné.

  • Inicializátor
    Člen typ odkazu, prvek spravovaného pole nebo jiný objekt, který můžete přiřadit nativní ukazatel.

y0fh545k.collapse_all(cs-cz,VS.110).gifPoznámky

Nativní ukazatel není možné sledovat položky jako změny jeho umístění ve spravovaných haldách, která vyplývá z garbage collector přesunutí instance objektu.Aby ukazatel na instanci odkazovat správně potřebuje aktualizovat ukazatele nově umístěny objektu modulu runtime.

interior_ptr Představuje nadmnožinu funkce nativního ukazatel.Proto vše, co může být přiřazena nativní ukazatele lze také přiřadit k interior_ptr.Vnitřní ukazatel je povoleno provádět stejnou sadu jako nativní ukazatele, včetně porovnání a ukazatel aritmetické operace.

Vnitřní ukazatele lze deklarovat pouze v zásobníku.Vnitřní ukazatel nelze deklarovat jako člen třídy.

Od vnitřní odkazy existují pouze v zásobníku, přičemž adresu vnitřní ukazatele výnosů nespravované ukazatel.

interior_ptrmá implicitní převod na bool, což umožňuje jeho použití v podmíněné příkazy.

Informace, jak deklarovat vnitřní ukazatel, který odkazuje na objekt, který nelze přesunout na něho uvolněna haldy, viz pin_ptr.

interior_ptrje v oboru názvů cli.Další informace naleznete v tématu Obory názvů Platform, default a cli (rozšíření komponent C++).

Další informace o vnitřní odkazy v tématu

y0fh545k.collapse_all(cs-cz,VS.110).gifPožadavky

Volba kompilátoru:/clr

y0fh545k.collapse_all(cs-cz,VS.110).gifPříklady

Příklad

Následující příklad ukazuje, jak deklarovat a použít vnitřní ukazatel do typu odkazu.

// 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);
}

Výsledek

  
  
  

Viz také

Koncepty

Součást rozšíření pro Runtime platformy