__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