Sdílet prostřednictvím


__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