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;
}