__gc
Publicada: abril de 2016
Nota
Este tema solo es aplicable a la versión 1 de Extensiones administradas para C++. Esta sintaxis solo se debe utilizar para mantener el código de la versión 1. Consulte Clases y structs (Extensiones de componentes de C++) para obtener información sobre el uso de la funcionalidad equivalente en la nueva sintaxis.
Declara un tipo __gc.
Sintaxis
__gc
array-specifier
__gc
class-specifier
__gc
struct-specifier
__gc
interface-specifier
__gc
pointer-specifier
__gc new
Comentarios
Un tipo __gc es una extensión del lenguaje C++ que simplifica la programación en .NET Framework proporcionando características como interoperabilidad y recolección de elementos no utilizados.
Nota
Cada función miembro de una clase abstracta __gc debe definirse a menos que la función miembro sea virtual pura.
En Extensiones administradas de C++, los equivalentes de una clase de C# y un struct de C# son los siguientes:
Extensiones administradas de C++ |
C# |
Para obtener más información |
---|---|---|
struct __gc o clase __gc |
clase |
Palabra clave class |
struct __value o clase __value |
struct |
Palabra clave struct |
Ejemplo
En el ejemplo siguiente, una clase administrada (X) se declara con un miembro de datos público, que se manipula a través de un puntero administrado:
// 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);
}
Resultado
0
4
5