কম্পিউটার

C++ এ ভার্চুয়াল ডেস্ট্রাক্টর


একটি বেস ক্লাসের পয়েন্টার ব্যবহার করে একটি প্রাপ্ত ক্লাস অবজেক্ট মুছে ফেলা হলে, বেস ক্লাসটি ভার্চুয়াল ডেস্ট্রক্টর দিয়ে সংজ্ঞায়িত করা উচিত।

উদাহরণ কোড

#include<iostream>
using namespace std;
class b {
   public:
      b() {
         cout<<"Constructing base \n";
      }
      virtual ~b() {
         cout<<"Destructing base \n";
      }
};
class d: public b {
   public:
      d() {
         cout<<"Constructing derived \n";
      }
      ~d() {
         cout<<"Destructing derived \n";
      }
};
int main(void) {
   d *derived = new d();
   b *bptr = derived;
   delete bptr;
   return 0;
}

আউটপুট

Constructing base
Constructing derived
Destructing derived
Destructing base

  1. C++ এ কনস্ট্রাক্টরের ভিতরে ভার্চুয়াল ফাংশন কল করা

  2. C++ এ বিশুদ্ধ ভার্চুয়াল ধ্বংসকারী

  3. C++ এ ইনলাইন ভার্চুয়াল ফাংশন

  4. কখন C++ এ ভার্চুয়াল ডেস্ট্রাক্টর ব্যবহার করবেন?