소멸자는 객체가 소멸할 때 반드시 호출되는 함수이다.
소멸자는 다음의 형태를 갖는다.
- 클래스의 이름 앞에 ~가 붙은 형태의 이름을 갖는다.
- 반환형이 선언되어 있지 않으며, 실제로 반환하지 않는다.
- 매개변수는 void형으로 선언되어야 하기 때문에 오버로딩도, 디폴트 값 설정도 불가능하다.
예시
~AAA() {//function body}
소멸자는 주로 객체의 소멸 전 객체 내에서 new 연산자를 이용해 동적으로 할당한 요소들을 delete를 이용해 없애는데 사용한다.
디폴트 생성자와 마찬가지로, 클래스에 소멸자가 정의되어 있지 않으면 컴파일러에 의해 디폴트 소멸자가 삽입된다.
참고자료