__gc
Publikováno: duben 2016
Poznámka
Toto téma se týká pouze verze 1 spravovaných rozšíření jazyka C++. Tato syntaxe by měla sloužit pouze k udržování kódu verze 1. Viz Classes and Structs (C++ Component Extensions) informace o použití ekvivalentní funkce v nové syntaxi.
Deklaruje typ __gc.
Syntaxe
__gc
array-specifier
__gc
class-specifier
__gc
struct-specifier
__gc
interface-specifier
__gc
pointer-specifier
__gc new
Poznámky
Typ __gc je rozšíření jazyka C++, který zjednodušuje programování rozhraní .NET Framework pomocí funkcí, jako jsou interoperability a uvolnění paměti.
Poznámka
Každá členská funkce __gc abstraktní třídy musí být definován, pokud členská funkce je čistě virtuální.
Ve spravovaných rozšíření jazyka C++ jsou ekvivalenty třída jazyka C# a struktura jazyka C#:
spravovaná rozšíření pro C++ |
C# |
Další informace |
---|---|---|
třídy nebo struktury __gc __gc |
třída |
třídy – klíčové slovo |
__value třídy nebo struktury __value |
struct |
Struktura – klíčové slovo |
Příklad
V následujícím příkladu spravovanou třídu (X) je deklarována s veřejné datového člena, který je zpracováván prostřednictvím spravovaných ukazatele:
// 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);
}
Výstup
0
4
5