একটি বেস ক্লাসের পয়েন্টার ব্যবহার করে একটি প্রাপ্ত ক্লাস অবজেক্ট মুছে ফেলা হলে, বেস ক্লাসটি ভার্চুয়াল ডেস্ট্রক্টর দিয়ে সংজ্ঞায়িত করা উচিত।
উদাহরণ কোড
#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