কম্পিউটার টিউটোরিয়াল

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


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

উদাহরণ কোড
#include 
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++-এ ভার্চুয়াল ডিস্ট্রাক্টর (Virtual Destructor) কখন ব্যবহার করা উচিত?