Partager via


Comment : La surcharge avec des pointeurs intérieurs et les pointeurs natifs

Les fonctions peuvent être surchargées selon que le type de paramètre soit un pointeur intérieur ou un pointeur natif.

Important

Cette fonctionnalité des langues est prise en charge par l'option du compilateur /clr, mais pas par l'option du compilateur /ZW.

Exemple

Code

// interior_ptr_overload.cpp
// compile with: /clr
using namespace System;

// C++ class
struct S {
   int i;
};

// managed class
ref struct G {
   int i;
};

// can update unmanaged storage
void f( int* pi ) {
   *pi = 10;
   Console::WriteLine("in f( int* pi )");
}

// can update managed storage
void f( interior_ptr<int> pi ) {
   *pi = 10; 
   Console::WriteLine("in f( interior_ptr<int> pi )");
}

int main() {
   S *pS = new S;   // C++ heap
   G ^pG = gcnew G;   // common language runtime heap
   f( &pS->i );
   f( &pG->i );
};

Sortie

in f( int* pi )
in f( interior_ptr<int> pi )

Voir aussi

Référence

interior_ptr