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# में वैश्विक चर क्यों नहीं हैं?

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

  1. Chrome में इतनी सारी प्रक्रियाएं क्यों चल रही हैं?

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