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 )