C++-এ ডিস্ট্রাক্টর অবজেক্ট ডিস্ট্রয় হলে কল হয় এবং সিস্টেম থেকে মেমরি রিলিজ করে। যখন ক্লাসে এক্সেপশন থ্রো করা হয়, তবে ক্যাচ ব্লক এক্সিকিউট হওয়ার আগে ডিস্ট্রাক্টর স্বয়ংক্রিয়ভাবে কল হয়।
অ্যালগরিদম
শুরু sample1 ক্লাস ঘোষণা করুন। sample1-এর কনস্ট্রাক্টর ঘোষণা করুন। "sample1-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে" প্রিন্ট করুন। sample1-এর ডিস্ট্রাক্টর ঘোষণা করুন। "sample1-এর অবজেক্ট ডিস্ট্রাক্ট হয়েছে" প্রিন্ট করুন। sample ক্লাস ঘোষণা করুন। sample2-এর কনস্ট্রাক্টর ঘোষণা করুন। i ইন্টিজার ডেটা টাইপের ভেরিয়েবল ঘোষণা করুন। i = 7 আরম্ভ করুন। "sample2-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে" প্রিন্ট করুন। i থ্রো করুন। sample2-এর ডিস্ট্রাক্টর ঘোষণা করুন। "sample2-এর অবজেক্ট ডিস্ট্রাক্ট হয়েছে" প্রিন্ট করুন। Try: sample1 ক্লাসের s1 অবজেক্ট ঘোষণা করুন। sample2 ক্লাসের s2 অবজেক্ট ঘোষণা করুন। Ctach(int i) "Caught" প্রিন্ট করুন। i ভেরিয়েবলের মান প্রিন্ট করুন। শেষ।
উদাহরণ কোড
#include <iostream> using namespace std; class Sample1 { public: Sample1() { cout << "Sample1-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে" << endl; } ~Sample1() { cout << "Sample1-এর অবজেক্ট ডিস্ট্রাক্ট হয়েছে" << endl; } }; class Sample2 { public: Sample2() { int i = 7; cout << "Sample2-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে" << endl; throw i; } ~Sample2() { cout << "Sample2-এর অবজেক্ট ডিস্ট্রাক্ট হয়েছে" << endl; } }; int main() { try { Sample1 s1; Sample2 s2; } catch(int i) { cout << "Caught " << i << endl; } }আউটপুট
Sample1-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে Sample2-এর অবজেক্ট কনস্ট্রাক্ট হয়েছে Sample1-এর অবজেক্ট ডিস্ট্রাক্ট হয়েছে Caught 7