__gc
게시: 2016년 4월
참고
이 항목은 Managed Extensions for C++ 버전 1에만 적용됩니다. 이 구문은 버전 1 코드를 유지하기 위해서만 사용해야 합니다. 참조 Classes and Structs (C++ Component Extensions) 동등한 기능을 사용 하 여 새 구문에서에 대 한 내용은 합니다.
__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 키워드 |
__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);
}
출력
0
4
5