Comment : surcharger des fonctions avec des pointeurs intérieurs et des pointeurs natifs (C++/CLI)

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

Important

Cette fonctionnalité de langage 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 );
};
in f( int* pi )
in f( interior_ptr<int> pi )

Voir aussi

interior_ptr (C++-CLI)