__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