다음을 통해 공유


ref new, gcnew(C++ 구성 요소 확장)

ref new 집계 키워드는 개체에 액세스할 수 없을 때 가비지 수집되고 할당된 개체에 대한 핸들(^)을 반환하는 형식의 인스턴스를 할당합니다.

모든 런타임

ref new에 의해 할당되는 형식의 인스턴스를 위한 메모리는 자동으로 할당 해제됩니다.

메모리를 할당할 수 없는 경우 ref new 작업이 OutOfMemoryException을 throw합니다.

네이티브 C++ 형식의 메모리를 할당 및 할당 취소하는 방법은 new 및 delete 연산자를 참조하십시오.

Windows 런타임

ref new를 사용하여 자동으로 수명을 관리하려는 Windows Runtime 개체의 메모리를 할당합니다.개체는 참조 횟수가 0이 되면 자동으로 할당 해제되어, 참조의 마지막 복사본이 범위를 벗어난 후에 발생합니다.자세한 내용은 Ref 클래스 및 구조를 참조하십시오.

te3ecsc8.collapse_all(ko-kr,VS.110).gif요구 사항

컴파일러 옵션: /ZW

공용 언어 런타임

관리되는 형식의 메모리(참조 또는 값 형식)는 gcnew에 의해 할당되며 가비지 수집을 사용하여 할당이 취소됩니다.

te3ecsc8.collapse_all(ko-kr,VS.110).gif요구 사항

컴파일러 옵션: /clr

te3ecsc8.collapse_all(ko-kr,VS.110).gif예제

예제

다음 예제에서는 gcnew 개체를 사용하여 메시지 개체를 할당합니다.

// mcppv2_gcnew_1.cpp
// compile with: /clr
ref struct Message {
   System::String^ sender;
   System::String^ receiver;
   System::String^ data;
};

int main() {
   Message^ h_Message  = gcnew Message;
  //...
}

예제

다음 예제에서는 gcnew를 사용하여 참조 형식 등에 사용하기 위해 boxed 값 형식을 만듭니다.

// example2.cpp : main project file.
// compile with /clr
using namespace System;
value class Boxed {
    public:
        int i;
};
int main()
{
    Boxed^ y = gcnew Boxed;
    y->i = 32;
    Console::WriteLine(y->i);
    return 0;
}

Output

  

참고 항목

개념

런타임 플랫폼의 구성 요소 확장