소멸자 (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 텍스트 저장소에 동적으로 할당 된 공간 할당을 취소 하는 연산자입니다.