다음을 통해 공유


소멸자 (C++)

"소멸자" 함수 생성자 함수의 역함수 값입니다.개체가 소멸 되 면 (할당이 해제 된) 라고 합니다.물결표와 클래스 이름 앞에 함수는 클래스 소멸자로 지정 (~).소멸자가 클래스에 대 한 예를 들어, String 선언 되었습니다: ~String().

/Clr 컴파일에서 소멸자는 특별 한 역할 관리를 해제 하 고 관리 되지 않는 리소스에 있습니다.자세한 내용은 소멸자 및 종료자에서를 참조하십시오.

예제

개체가 더 이상 필요할 때 소멸자 "삭제 하기" 일반적으로 사용 됩니다.다음과 같은 선언을 생각해 볼 수 있는 String 클래스:

// spec1_destructors.cpp
#include <string.h>

class String {
public:
   String( char *ch );  // Declare constructor
   ~String();           //  and destructor.
private:
   char    *_text;
   size_t  sizeOfText;
};

// Define the constructor.
String::String( char *ch ) {
   sizeOfText = strlen( ch ) + 1;

   // Dynamically allocate the correct amount of memory.
   _text = new char[ sizeOfText ];

   // If the allocation succeeds, copy the initialization string.
   if( _text )
      strcpy_s( _text, sizeOfText, ch );
}

// Define the destructor.
String::~String() {
   // Deallocate the memory that was previously reserved
   //  for this string.
   if (_text)
      delete[] _text;
}

int main() {
   String str("The piper in the glen...");
}

위 예제에서는 소멸자가 String::~String 사용 하는 delete 텍스트 저장소에 동적으로 할당 된 공간 할당을 취소 하는 연산자입니다.

참고 항목

참조

특수 멤버 함수 (C++)