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