Comment : surcharger des fonctions avec des pointeurs intérieurs et des pointeurs natifs (C++/CLI)
Les fonctions peuvent varier selon que surchargé 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 pour /clr , mais pas par l'option du compilateur pour /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 )