Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में प्योर वर्चुअल डिस्ट्रक्टर की आवश्यकता क्यों होती है?


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

  1. - C++ में प्योर वर्चुअल डिस्ट्रक्टर

    प्योर वर्चुअल डिस्ट्रक्टर C++ में संभव है। यदि किसी क्लास में प्योर वर्चुअल डिस्ट्रक्टर है तो प्योर वर्चुअल डिस्ट्रक्टर के लिए फंक्शन बॉडी प्रदान करना अनिवार्य है।उदाहरण कोड#include <iostream> using namespace std; class B {    public:    virtual ~B()=0; // प्योर वर्चुअल डिस

  1. - C++ में प्योर फ़ंक्शन

    प्योर फ़ंक्शन्स समान आर्गुमेंट मानों के लिए हमेशा समान परिणाम लौटाते हैं। वे केवल परिणाम लौटाते हैं और कोई अतिरिक्त साइड इफेक्ट्स नहीं होते जैसे आर्गुमेंट मॉडिफिकेशन, I/O स्ट्रीम, आउटपुट जनरेशन आदि। कुछ प्योर फ़ंक्शन्स हैं: sin(), strlen(), sqrt(), max(), pow(), floor() आदि। कुछ इम्प्योर फ़ंक्शन्स

  1. - C++ को स्कोप रिज़ॉल्यूशन ऑपरेटर की आवश्यकता क्यों है?

    :: (स्कोप रिज़ॉल्यूशन) ऑपरेटर का उपयोग वेरिएबल स्कोप के कारण छिपे हुए नामों को प्राप्त करने के लिए किया जाता है ताकि आप अभी भी उनका उपयोग कर सकें। स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग यूनरी और बाइनरी दोनों के रूप में किया जा सकता है। यदि नेमस्पेस स्कोप या ग्लोबल स्कोप का नाम किसी ब्लॉक या क्लास में उस