소멸자란?
태어난 모든 생명체가 언젠가는 흙으로 돌아가는 것처럼, C++ 객체 역시 언젠가는 소멸됩니다.
객체가 소멸되면 객체 메모리는 시스템으로 반환됩니다. 또한 객체 생성 시 생성자 함수가 실행되는 것처럼 객체 소멸 시 소멸자 함수가 실행됩니다. 소멸자(destructor)는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스의 멤버 함수입니다.
소멸자의 목적은 객체가 사라질 때 필요한 마무리 작업을 위함입니다.
객체가 소멸할 때, 동적으로 할당받은 메모리를 운영체제에게 돌려주거나, 열어 놓은 파일을 저장하고 닫거나, 연결된 네트워크를 해제하는 등 객체가 사라지기 전에 필요한 조치를 하도록 하기 위함입니다.
소멸자의 이름은 클래스 이름 앞에 ~를 붙입니다.
Circle 클래스의 소멸자 이름은 ~Circle()이며, 소멸자는 다음과 같이 작성합니다.
Circle::~Circle() { ... }
소멸자는 리턴 타입이 없으며 어떤 값도 리턴해서도 안됩니다.
소멸자는 생성자와 같이 리턴 타입 없이 선언되며 어떤 값도 리턴해서는 안됩니다.
소멸자는 오직 한 개만 존재하며 매개 변수를 가지지 않습니다.
소멸자는 생성자와 달리 한 클래스에 한 개만 존재하며 매개 변수를 가지지 않습니다.
소멸자는 선언되어 있지 않으면 기본 소멸자(default destructor)가 자동으로 생성됩니다.
생성자와 마찬가지로 소멸자가 없는 클래스는 컴파일러에 의해 자동으로 기본 소멸자가 주어집니다. 이때 기본 소멸자는 아무것도 하지 않고 단순 리턴하도록 만들어집니다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
| 접근 지정 (0) | 2026.06.21 |
|---|---|
| 소멸자 실행 (0) | 2026.06.18 |
| 생성자는 꼭 있어야 하는가? (0) | 2026.06.12 |
| 생성자와 멤버 변수의 초기화 (0) | 2026.06.09 |
| 위임 생성자(delegating constructor), 생성자가 다른 생성자 호출 (0) | 2026.06.06 |