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