다음을 통해 공유


__gc

참고

이 항목은 Managed Extensions for C++ 버전 1에만 적용됩니다.이 구문은 버전 1 코드를 유지하기 위해서만 사용해야 합니다.새 구문에서의 동일한 기능 사용에 대한 자세한 내용은 클래스 및 구조체 (관리)를 참조하십시오.

__gc 형식을 선언합니다.

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

설명

__gc 형식은 상호 운용성 및 가비지 수집과 같은 기능을 제공하여 .NET Framework 프로그래밍을 간소화하는 C++ 언어 확장입니다.

참고

멤버 함수가 순수하게 가상이 아닌 한 추상 __gc 클래스의 모든 멤버 함수를 정의해야 합니다.

Managed Extensions for C++에서 C# 클래스와 C# 구조체에 해당하는 요소는 다음과 같습니다.

Managed Extensions for C++

C#

추가 정보

__gc 구조체 또는 __gc 클래스

class

class 키워드

__value 구조체 또는 __value 클래스

struct

struct 키워드

예제

다음 예제에서 관리되는 클래스(X)는 관리되는 포인터를 통해 조작되는 public 데이터 멤버를 사용하여 선언됩니다.

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

Output

0
4
5