다음을 통해 공유


새로운 작동

할당 식 -식을 포함 하는 연산자 등 세 가지 작업을 수행:

  • 정하고, 할당 될 수 있는 개체에 대 한 저장소를 예약 합니다.이 단계를 완료 되 면 올바른 저장소 크기를 할당 됩니다, 있지만 아직 개체가 아닙니다.

  • 개체를 초기화합니다.초기화가 완료 되 면 개체에 할당 된 저장소에 대 한 충분 한 정보가 있습니다.

  • 포인터 형식의 개체에 대 한 포인터에서 파생 된 반환 새 형식 이름 또는 형식 이름.프로그램이이 포인터를 사용 하 여 새로 할당 된 개체에 액세스할 수 있습니다.

해당 연산자 함수를 호출 합니다. operator new.모든 형식의 배열에 대 한와 중에 있지 않은 개체에 대 한 클래스, struct, 또는 union 형식 및 전역 함수를 :: new 연산자, 저장소를 할당 하기 위해 호출 됩니다.개체 클래스 형식을 정의할 수 있습니다 자신의 operator new 정적 멤버 함수를 클래스 당으로.

때 컴파일러가 발견은 형식의 개체를 할당 하는 연산자 type, 호출을 발급 type**:: new 연산자 (sizeof (type))** 또는 없음 사용자 정의 하는 경우 operator new 정의 된 :: new 연산자 (sizeof (type)).    따라서, 해당 연산자는 개체에 대 한 올바른 메모리 양을 할당할 수 있습니다.

[!참고]

인수를 operator new 형식인 size_t.이 형식에서 정의 됩니다.MALLOC H입니다.H, 메모리입니다.H를 검색 합니다.H, STDDEFH 들어 STDIO입니다.H, STDLIBH, 문자열입니다.H 및 시간입니다.H.

문법에서 옵션을 지정 합니다 배치 (문법에 대 한 참조 하십시오. new 연산자).해당 배치 만 사용자 정의의 구현에 대 한 매개 변수를 사용할 수 있습니다 operator new. 추가 정보를 전달할 수 있습니다 operator new.식에는 배치 필드와 같은 T *TObject = new ( 0x0040 ) T; 변환 됩니다 T *TObject = T::operator new( sizeof( T ), 0x0040 ); T 클래스 멤버 연산자 새, 그렇지 하는 경우 T *TObject = ::operator new( sizeof( T ), 0x0040 );.

원래 의도 배치 필드 되었습니다 하드웨어 종속 개체를 사용자 지정 하는 주소를 할당할 수 있도록 합니다.

[!참고]

앞의 예제에서 인수를 하나만 표시 되지만 배치 필드는 제한이 얼마나 많은 추가 인수를 전달할 수 있습니다에서 operator new 이 방법으로.

심지어 때 operator new 정의 된이 다음 형식을 사용 하 여 클래스 형식에 대 한 전역 연산자 사용할 수 있습니다:

T *TObject =::new TObject;

범위 결정 연산자 (::)을 강제로 사용 하는 글로벌 연산자입니다.

참고 항목

참조

새 운영자 (C++)