소멸자는 객체가 소멸할 때 반드시 호출되는 함수이다.

소멸자는 다음의 형태를 갖는다.

  • 클래스의 이름 앞에 ~가 붙은 형태의 이름을 갖는다.
  • 반환형이 선언되어 있지 않으며, 실제로 반환하지 않는다.
  • 매개변수는 void형으로 선언되어야 하기 때문에 오버로딩도, 디폴트 값 설정도 불가능하다.

예시

~AAA() {//function body}

소멸자는 주로 객체의 소멸 전 객체 내에서 new 연산자를 이용해 동적으로 할당한 요소들을 delete를 이용해 없애는데 사용한다.

디폴트 생성자와 마찬가지로, 클래스에 소멸자가 정의되어 있지 않으면 컴파일러에 의해 디폴트 소멸자가 삽입된다.


참고자료

윤성우의_열혈_cpp_프로그래밍