__gc
Hinweis
Dieses Thema gilt nur für Version 1 von Managed Extensions für C++.Diese Syntax sollte nur verwendet werden, um Code von Version 1 beizubehalten.Informationen über die Verwendung der entsprechenden Funktionen in der neuen Syntax finden Sie unter Klassen und Strukturen (Komponentenerweiterungen für C++).
Deklariert einen __gc-Typ.
__gc array-specifier
__gc class-specifier
__gc struct-specifier
__gc interface-specifier
__gc pointer-specifier
__gc new
Hinweise
Ein __gc-Typ ist eine Erweiterung der C++Programmiersprache, die die .NET Framework-Programmierung vereinfacht, indem Sie Funktionen wie Interoperabilität und Garbage Collection bereitstellt.
Hinweis
Jede Memberfunktion einer abstrakten __gc-Klasse muss definiert werden, es sei denn, die Memberfunktion ist rein virtuell.
In verwalteten Erweiterungen für C++ sind die Entsprechungen zu einer C#-Klasse und einer C#-Struktur wie folgt:
Verwaltete Erweiterungen für C++ |
C# |
Weitere Informationen |
---|---|---|
"__gc struct" oder "__gc class" |
class |
class-Schlüsselwort |
"__value struct" oder "__value class" |
struct |
struct-Schlüsselwort |
Beispiel
Im folgenden Beispiel wird eine verwaltete Klasse (X) mit einem öffentlichen Datenmember deklariert, der durch einen verwalteten Zeiger bearbeitet wird:
// 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);
}
Ausgabe
0
4
5