#include <iostream>
using namespace std;
void f1(); void f2(); void f3();
class Test {
int id;
public:
Test(int n) {
id = n;
cout << "생성자 " << id << endl;
}
~Test() {
cout << "소멸자 " << id << endl;
}
};
void f1() {
Test* p = new Test(1);
f2();
delete p;
}
void f2() {
Test* p = new Test(2);
f3();
delete p;
}
void f3() {
Test* p = new Test(2);
throw 10;
delete p;
}
int main() {
try
{
f1();
}
catch (int x)
{
cout << "catch block" << endl;
}
cout << "main end";
}
위 코드를 실행하면 동적할당한 경우 메모리 해제가 잘 되지 않아 소멸자가 호출퇴지 않는다
'대외활동 > 시스템프로그래밍' 카테고리의 다른 글
modern c++ (0) | 2024.07.31 |
---|---|
스마트 포인터 (0) | 2024.07.31 |
c++ 입출력 시스템 (0) | 2024.07.30 |
람다식 (0) | 2024.07.30 |
템플릿 & STL (0) | 2024.07.29 |