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

C++ में वर्चुअल कंस्ट्रक्टर क्यों नहीं होता?


वर्चुअल मैकेनिज्म केवल तभी काम करता है जब हमारे पास डेराइव्ड क्लास ऑब्जेक्ट के लिए बेस क्लास पॉइंटर होता है।

C++ में, कंस्ट्रक्टर वर्चुअल नहीं हो सकता, क्योंकि जब किसी क्लास का कंस्ट्रक्टर निष्पादित होता है तो मेमोरी में कोई वर्चुअल टेबल नहीं होती, मतलब अभी तक कोई वर्चुअल पॉइंटर परिभाषित नहीं हुआ है। इसलिए, कंस्ट्रक्टर हमेशा नॉन-वर्चुअल होना चाहिए।

लेकिन वर्चुअल डिस्ट्रक्टर संभव है। यहां एक उदाहरण है

उदाहरण

#include<iostream> using namespace std; class b {    public:    b()    { cout<<"Constructing base \n"; }    virtual ~b()    { cout<<"Destructing base \n"; } }; class d: public b {    public:       d()       { cout<<"Constructing derived \n"; }       ~d()       { cout<<"Destructing derived \n"; } }; int main(void) {    d *derived = new d();    b *bptr = derived;    delete bptr;    return 0; }

आउटपुट

Constructing base Constructing derived Destructing derived Destructing base



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

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

  1. - C# में ग्लोबल वेरिएबल्स क्यों नहीं हैं

    C# में ग्लोबल वेरिएबल्स नहीं होते और C++ में ग्लोबल वेरिएबल्स के लिए उपयोग किया जाने वाला स्कोप रिज़ॉल्यूशन ऑपरेटर नेमस्पेसेस से संबंधित है। इसे ग्लोबल नेमस्पेस एलियास कहा जाता है। यदि आपके पास एक टाइप है जो अलग नेमस्पेस में एक आइडेंटिफायर शेयर करता है, तो उन्हें स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग कर

  1. क्रोम एकाधिक प्रोसेस क्यों चलाता है - लाभ, कमियां और उन्हें कैसे प्रबंधित करें क्रोम एकाधिक प्रोसेस क्यों चलाता है - लाभ, कमियां और उन्हें कैसे प्रबंधित करें

    क्या आपने कभी अपने कंप्यूटर पर टास्क मैनेजर खोला है जब गूगल क्रोम चल रहा था यह देखने के लिए कि ब्राउज़र पृष्ठभूमि में कितने प्रोसेस खुले रखता है? भले ही आपके पास केवल दो या तीन टैब खुले हों, आपको टास्क मैनेजर में क्रोम की कई एंट्री दिखाई देंगी। उन सभी का प्रतिनिधित्व आपके ब्राउज़र से जुड़े प्रोसेस क