C++ প্রোগ্রামে পিউর ভার্চুয়াল ডিস্ট্রাক্টর থাকতে দেয়া কোনো ইল-ইফেক্ট নেই। পিউর ভার্চুয়াল ডিস্ট্রাক্টরের জন্য ফাংশন বডি দিতে হয় অবশ্যই কারণ ডেরাইভড ক্লাসের ডিস্ট্রাক্টর প্রথমে কল হয় বেস ক্লাসের ডিস্ট্রাক্টরের আগে, তাই যদি ফাংশন বডি না দিয়ে থাকি, তবে অবজেক্ট ডিস্ট্রাকশনের সময় কল করার জন্য কিছুই পাওয়া যাবে না এবং এরর হবে। সহজে একটি অ্যাবস্ট্র্যাক্ট ক্লাস তৈরি করা যায় পিউর ভার্চুয়াল ডিস্ট্রাক্টর তার ডেফিনিশনসহ দিয়ে।
উদাহরণ কোড
#include <iostream>
using namespace std;
class B {
public:
virtual ~B() = 0; // পিউর ভার্চুয়াল ডিস্ট্রাক্টর
};
B::~B() {
cout << "Pure virtual destructor is called";
}
class D : public B {
public:
~D() {
cout << "~Derived\n";
}
};
int main() {
B *b = new D();
delete b;
return 0;
}আউটপুট
~Derived Pure virtual destructor is called