연산자 (c, + +)를 삭제 합니다.
메모리 블록의 할당을 취소 합니다.
[::] delete cast-expression
[::] delete [ ] cast-expression
설명
Cast 식 인수를 사용 하 여 만든 개체에 대해 이전에 할당 된 메모리 블록에 대 한 포인터 이어야의 new 연산자.를 삭제 연산자가 결과 유형 void 및 따라서 값을 반환 하지 않습니다.예를 들면 다음과 같습니다.
CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;
사용 하 여 삭제 않는 할당 된 개체에 대 한 포인터를 새 예측할 수 없는 결과 제공 합니다.그러나 사용할 수 있는, 삭제 에 대 한 포인터 값이 0에서.이 조항에서 의미 때 새 실패로 인해 삭제 실패 시 0이 반환 새 작업 치명적입니다.참조 하십시오 의 새로운 운영자를 삭제 하 고 에 대 한 자세한 내용은.
새 및 삭제 연산자 배열을 비롯 하 여 기본 제공 형식에도 사용할 수 있습니다.경우 pointer 참조 하는 배열 위치 괄호 전에 pointer:
int* set = new int[100];
//use set[]
delete [] set;
사용 하는 삭제 연산자는 개체에서 메모리 할당을 취소 합니다.개체를 삭제 한 후에 대 한 포인터를 역참조 하는 프로그램 충돌 또는 예기치 않은 결과가 있을 수 있습니다.
때 를 삭제 입니다 (개체 소멸자가 있는 경우) 개체의 메모리 할당 해제 됩니다 전에 C++ 클래스 개체에 대 한 메모리 할당을 사용 하면 개체의 소멸자가 호출 됩니다.
경우 피연산자는 를 삭제 연산자 l-value는 수정할 수 있습니다, 개체를 삭제 한 후 해당 값이 정의 되지 않습니다.
예제
사용 예에 대 한 삭제를 참조 하십시오 new 연산자.