__gc

Примечание

Этот раздел относится только к управляемым расширениям для C++ версии 1.Приведенный здесь синтаксис должен использоваться только для обслуживания кода версия 1.Сведения об использовании аналогичных функциональных возможностей в новом синтаксисе см. в разделе классы и структуры (управляемые).

Объявляет тип __gc.

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

Заметки

Тип __gc — это расширение языка C++, упрощающее программирование платформы .NET Framework, поскольку предоставляет функции взаимодействия и сбора мусора.

Примечание

Каждая функция-член абстрактного класса __gc должна быть определена. Исключение составляют случаи, когда функция-член является полностью виртуальной.

В управляемых расширениях для C++ используются следующие эквиваленты класса C# и структуры C#.

Управляемые расширения для C++

C#

Дополнительные сведения

структура __gc или класс __gc

класс

ключевое слово class

структура __value или класс __value

struct

ключевое слово struct

Пример

В следующем примере управляемый класс (X) объявлен с членом открытых данных, действия с которым осуществляются с помощью управляемого указателя.

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

Вывод

0
4
5