[c++] 소멸자의 역할

C++에서 소멸자는 객체의 수명이 끝나고 해당 객체가 소멸될 때 호출되는 특별한 멤버 함수입니다. 이 문서에서는 C++ 소멸자의 역할에 대해 살펴보겠습니다.

1. 객체의 자원 해제

어떤 클래스가 동적으로 할당받은 메모리나 다른 자원을 사용하고 있다면, 소멸자는 그 자원을 해제하는 역할을 합니다. 이를 통해 메모리 누수자원 누수를 방지할 수 있습니다.

예를 들어, 다음과 같이 동적으로 메모리를 할당하는 클래스가 있다고 가정해봅시다.

class MyClass {
public:
    MyClass() {
        pData = new int[10];
    }
    ~MyClass() {
        delete[] pData;
    }
private:
    int *pData;
};

위의 코드에서 소멸자 ~MyClass()pData가 가리키는 배열을 해제하는 역할을 합니다.

2. 리소스 정리

소멸자는 객체가 소멸되는 시점에 필요한 정리 작업을 수행하는 데에도 사용됩니다. 예를 들어, 파일을 열었을 경우 해당 파일을 닫는 동작을 소멸자 내에서 수행할 수 있습니다.

3. 상속시의 소멸자

상속 관계에서는 가상 소멸자를 사용하여 올바른 소멸자가 호출되도록 해야 합니다. 부모 클래스의 소멸자가 가상 함수일 경우, 파생 클래스에서 재정의된 소멸자가 호출됩니다.

마무리

C++의 소멸자는 객체의 소멸 시에 필요한 작업을 처리하는 중요한 멤버 함수입니다. 올바르게 사용되면 메모리 누수 및 자원 누수를 방지하고, 객체의 수명 주기를 체계적으로 관리할 수 있습니다.


참고문헌: