__gc
Notes
Cette rubrique s'applique uniquement à la version 1 des extensions managées pour C++.Cette syntaxe doit être utilisée uniquement pour conserver le code de la version 1.Consultez Classes et structures (géré) pour plus d'informations sur l'utilisation de la fonctionnalité équivalente dans la nouvelle syntaxe.
Déclare un type __gc.
__gc array-specifier
__gc class-specifier
__gc struct-specifier
__gc interface-specifier
__gc pointer-specifier
__gc new
Notes
Un type __gc est une extension de langage C++ qui simplifie la programmation .NET Framework en fournissant des fonctionnalités telles que l'interopérabilité et le garbage collection.
Notes
Chaque fonction membre d'une __gc class abstraite doit être définie, sauf si la fonction membre est une fonction virtuelle pure.
Dans les Extensions managées pour C++, les équivalents pour C# class et C# struct sont les suivants :
Extensions managées pour C++ |
C# |
Pour plus d'informations |
---|---|---|
__gc struct ou __gc class |
class |
mot clé class |
__value struct ou __value class |
struct |
mot clé struct |
Exemple
Dans l'exemple suivant, une classe managée (X) est déclarée avec une donnée membre publique, manipulée par l'intermédiaire d'un pointeur managé :
// keyword__gc.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;
__gc class X {
public:
int i;
int ReturnInt() { return 5; }
};
int main() {
// X is a __gc class, so px is a __gc pointer
X* px;
px = new X; // creates a managed object of type X
Console::WriteLine(px->i);
px->i = 4; // modifies X::i through px
Console::WriteLine(px->i);
int n = px->ReturnInt(); // calls X::ReturnInt through px
Console::WriteLine(n);
}
Sortie
0
4
5