Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 예외 처리 및 개체 파괴

<시간/>

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