Partager via


__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