Virtual Destructor in C++ in Hindi

हेलो स्टूडेंट्स, इस पोस्ट में हम आज Virtual Destructor in C++ in Hindi के बारे में पढ़ेंगे | इंटरनेट में C++ भाषा के नोट्स हिंदी में बहुत कम उपलब्ध है, लेकिन हम आपके लिए यह हिंदी में डिटेल्स नोट्स लाये है, जिससे आपको यह टॉपिक बहुत अच्छे से समझ आ जायेगा |

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 Destructorn"; 
}
};

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 किया जायेगा.

Also read : Constructor Overloading in C++ in Hindi

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 << "~Derivedn";
}
};

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

हम आशा करते है कि यह Virtual Destructor in C++ in Hindi के हिंदी में नोट्स आपकी स्टडी में उपयोगी साबित हुए होंगे | अगर आप लोगो को इससे रिलेटेड कोई भी किसी भी प्रकार का डॉउट हो तो कमेंट बॉक्स में कमेंट करके पूंछ सकते है | आप इन्हे अपने Classmates & Friends के साथ शेयर करे |

Leave a Comment

Your email address will not be published.