C++의 소멸자는 기본적으로 객체가 파괴되고 시스템에서 메모리를 해제할 때 호출됩니다. 클래스에서 예외가 발생하면 catch 블록이 실행되기 전에 소멸자가 자동으로 호출됩니다.
알고리즘
Begin Declare a class sample1. Declare a constructor of sample1. Print “Construct an Object of sample1” Declare a destructor of sample1. Print “Destruct an Object of sample1” Declare a class sample. Declare a constructor of sample2. Declare variable i of the integer datatype. Initialize i = 7. Print “Construct an Object of sample1”. Throw i. Declare a destructor of sample2. Print “Destruct an Object of sample2” Try: Declare an object s1 of class sample1. Declare an object s2 of class sample2. Ctach(int i) Print “Caught”. Print the value of variable i. End.
예시 코드
#include <iostream>
using namespace std;
class Sample1 {
public:
Sample1() {
cout << "Construct an Object of sample1" << endl;
}
~Sample1() {
cout << "Destruct an Object of sample1" << endl;
}
};
class Sample2 {
public:
Sample2() {
int i =7;
cout << "Construct an Object of sample2" << endl;
throw i;
}
~Sample2() {
cout << "Destruct an Object of sample2" << endl;
}
};
int main() {
try {
Sample1 s1;
Sample2 s2;
} catch(int i) {
cout << "Caught " << i << endl;
}
} 출력
Construct an Object of sample1 Construct an Object of sample2 Destruct an Object of sample1 Caught 7