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