Virtual Destructor in C++ in Hindi – वर्चुअल डिस्ट्रक्टर क्या है?

Hello दोस्तों! आज हम इस पोस्ट में Virtual Destructor in C++ in Hindi (वर्चुअल डिस्ट्रक्टर क्या है?) के बारें में पढेंगे और इसके examples को भी देखेंगे. आप इसे पूरा पढ़िए. आपको यह आसानी से समझ आ जायेगा. तो चलिए start करते हैं:-

Virtual Destructor in C++ in Hindi

C++ में, Virtual destructor का प्रयोग derived class object के द्वारा allocate किये हुए memory space को खाली करने के लिए किया जाता है. इसमें base class के pointer का प्रयोग करके derived class के objects को delete किया जाता है.

Destruction की प्रक्रिया को सही ढंग से करने के लिए हमें हमेशा base class के destructor को virtual बनाना चाहिए.

एक base class जो है वह virtual कीवर्ड का प्रयोग करती है जो यह सुनिश्चित करता है कि base class और derived class destructor दोनों runtime में call किये जाए.

इसमें derived class को पहले call किया जाता है और उसके बाद base class को call किया जाता है जिससे कि दोनों destructors के द्वारा लिए गये memory space को खाली किया जा सके.

यहाँ ध्यान देने वाली बात यह है कि constructor को कभी भी virtual नहीं बनाया जा सकता, केवल destructor को ही virtual बनाया जा सकता है.

Virtual Destructor का program –

class Base
{
public:
 virtual ~Base() 
 {
cout << "Base Destructor\n"; 
}
};

class Derived:public Base
{
public:
~Derived() 
    { 
cout<< "Derived Destructor"; 
    }
}; 

int main()
{
Base* b = new Derived;     
delete b;
}

इसका आउटपुट
Derived Destructor
Base Destructor

ऊपर दिए program में Base class के अंदर virtual destructor है. इसलिए इसमें सबसे पहले Derived class के destructor को call किया जायेगा और उसके बाद Base class के destructor को call किया जायेगा.

Pure Virtual Destructor in C++ in Hindi

  • Pure virtual destructor, C++ में legal (वैध) हैं.
  • इसमें सबसे महत्वपूर्ण बात यह है कि यदि किसी class के पास pure virtual destructor है तो उस class को pure virtual destructor के लिए function body अवश्य प्रदान करनी चाहिए.
  •  अगर हम इसके लिए function body नहीं प्रदान करते है तो हमारे program में error आ जायेगा.
  • वह class जो pure virtual destructor को contain किये रहती है वह abstract class बन जाती है. और इसलिए हम इस class के objects को create नहीं कर सकते.

इसका example

#include <iostream>
using namespace std;

class B { 
public: virtual ~B()=0; // Pure virtual destructor
};

B::~B() {
cout << "Pure virtual destructor";
}

class D : public B {
public: ~D() {
cout << "~Derived\n";
}
};

int main() {
B *b = new D();
delete b;
return 0;
}

इसका आउटपुट –
~ Derived
Pure virtual destructor

references:- https://www.javatpoint.com/virtual-destructor-in-cpp

virtual destructor in C++ in Hindi

निवेदन:- हमें उम्मीद है कि आपके लिए यह article उपयोगी रहा होगा. इसे अपने friends और classmates के साथ अवश्य share कीजिये और आपके इससे related कोई सवाल हो या कही पर कुछ गलती हो तो उसे आप नीचे comment करके बताइए.

अगर आपको किसी दूसरे subjects के notes चाहिए हो तो उसे भी आप comment करके बता सकते हैं. धन्यवाद.

Leave a Comment