Partilhar via


__gc

Dica

Este tópico se aplica somente à versão 1 de Managed Extensions for C++.Esta sintaxe só deve ser usada para manter o código da versão 1.Consulte Classes e estruturas (gerenciadas) para obter informações sobre como usar a funcionalidade equivalente na nova sintaxe.

Declara um tipo __gc.

__gc array-specifier 
__gc class-specifier 
__gc struct-specifier 
__gc interface-specifier 
__gc pointer-specifier 
__gc new

Comentários

Um tipo __gc é uma extensão da linguagem C++ que simplifica a programação do .NET Framework, fornecendo recursos como interoperabilidade e coleta de lixo.

Dica

Cada função de membro de uma classe __gc abstrata deve ser definida, a menos que a função de membro seja virtual pura.

Nas extensões gerenciadas do C++, os equivalentes a uma classe C# e um struct C# são os seguintes:

Extensões gerenciadas do C++

C#

Para obter mais informações

struct __gc ou classe __gc

classe

palavra-chave class

struct __value ou classe __value

struct

palavra-chave struct

Exemplo

No exemplo a seguir, uma classe gerenciada (X) é declarada com um membro de dados público, que é manipulado por meio de um ponteiro gerenciado:

// 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);
}

Saída

0
4
5