Part2::Ch 01. 클래스 - 04. 파괴자(Destructor)
2025. 4. 29. 17:44ㆍProgramming Language/C++
반응형
1. 파괴자란
객체가 소멸될 때 자동으로 호출되는 특수한 함수로 객체가 메모리에서 삭제될 때, 그 전에 해야 할 정리(clean-up) 작업을 담당하는 함수다.
2. 파괴자의 기본 형태
~클래스이름();
클래스 명앞에 ~(틸트)를 붙여서 생성하며 반환형도 없고 매개변수도 없으며 딱 하나만 정의할 수 있다.
3. 파괴자가 호출되는 시점
파괴자는 지역 변수로 생성된 객체가 스코프를 벗어날 때 delete로 객체를 지울때 프로그램 종료 시점에 자동으로 호출된다.
4. 파괴자 호출의 예시
파괴자가 꼭 필요한 경우는 멤버 변수를 동적할당해줄 경우엔 반드시 delete로 해제를 해야하기 때문에
class Car {
private:
int* speed;
public:
Car(int s) {
speed = new int(s);
}
~Car() {
delete speed; // new로 할당한 메모리는 반드시 delete 해야 함
}
void showSpeed() {
std::cout << *speed << std::endl;
}
};
int main() {
Car myCar(100);
myCar.showSpeed();
}
이렇게 멤버변수를 포인터로 하여 동적 할당을 받아 값을 사용할때 이 객체가 사라질때 파괴자를 사용해서 동적할당된 모든 메모리를 반환해줘야만 한다.
이래야 메모리 누수가 발생하지 않는다.
반응형
'Programming Language > C++' 카테고리의 다른 글
Part2::Ch 01. 클래스 - 06. this 포인터 (0) | 2025.04.29 |
---|---|
Part2::Ch 01. 클래스 - 05. 선언과 정의의 분리 & 전방 선언 (0) | 2025.04.29 |
Part2::Ch 01. 클래스 - 03. 생성자(Constructor) (0) | 2025.04.29 |
Part2::Ch 01. 클래스 - 02. 클래스와 객체 (0) | 2025.04.29 |
Part2::Ch 01. 클래스 - 01. 객체지향 개괄 (0) | 2025.04.29 |