C++

소멸자(destructor)

성-민 2025. 3. 26. 10:51

객체가 파괴될 때 자동으로 호출되는 특별한 멤버 함수

객체가 스코프를 벗어나거나 delete가 호출되어 메모리가 해체될 때 자동으로 실행
소멸자의 주요 역할은 객체가 소멸될 때 리소스를 반환하거나 메모리를 해제

#include <iostream>
using namespace std;

class MyClass {
public:
    // 생성자
    MyClass() {
        cout << "객체가 생성되었습니다." << endl;
    }

    // 소멸자
    ~MyClass() {
        cout << "객체가 소멸됩니다." << endl;
    }
};

int main() {
    MyClass obj;	// 객체가 생성되면 생성자 호출
			// 객체가 스코프를 벗어나면 소멸자 호출
    return 0;
}

동적할당

#include <iostream>
using namespace std;

class MyClass {
private:
    int* data;
public:
    // 생성자
    MyClass() {
        data = new int[100];		// 동적 메모리 할당
        cout << "동적 메모리 할당되었습니다." << endl;
    }

    // 소멸자
    ~MyClass() {
        delete[] data;			// 동적 메모리 해제
        cout << "동적 메모리 해제되었습니다." << endl;
    }
};

int main() {
    MyClass* obj = new MyClass();	// 동적 객체 생성
    delete obj;				// 객체가 소멸되면서 소멸자 호출
    return 0;
}