ตัวทำลายล้างใน 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