[c++] 소멸자의 역할
C++에서 소멸자는 객체의 수명이 끝나고 해당 객체가 소멸될 때 호출되는 특별한 멤버 함수입니다. 이 문서에서는 C++ 소멸자의 역할에 대해 살펴보겠습니다.
1. 객체의 자원 해제
어떤 클래스가 동적으로 할당받은 메모리나 다른 자원을 사용하고 있다면, 소멸자는 그 자원을 해제하는 역할을 합니다. 이를 통해 메모리 누수나 자원 누수를 방지할 수 있습니다.
예를 들어, 다음과 같이 동적으로 메모리를 할당하는 클래스가 있다고 가정해봅시다.
class MyClass {
public:
MyClass() {
pData = new int[10];
}
~MyClass() {
delete[] pData;
}
private:
int *pData;
};
위의 코드에서 소멸자 ~MyClass()
는 pData
가 가리키는 배열을 해제하는 역할을 합니다.
2. 리소스 정리
소멸자는 객체가 소멸되는 시점에 필요한 정리 작업을 수행하는 데에도 사용됩니다. 예를 들어, 파일을 열었을 경우 해당 파일을 닫는 동작을 소멸자 내에서 수행할 수 있습니다.
3. 상속시의 소멸자
상속 관계에서는 가상 소멸자를 사용하여 올바른 소멸자가 호출되도록 해야 합니다. 부모 클래스의 소멸자가 가상 함수일 경우, 파생 클래스에서 재정의된 소멸자가 호출됩니다.
마무리
C++의 소멸자는 객체의 소멸 시에 필요한 작업을 처리하는 중요한 멤버 함수입니다. 올바르게 사용되면 메모리 누수 및 자원 누수를 방지하고, 객체의 수명 주기를 체계적으로 관리할 수 있습니다.
참고문헌: