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

C++ में कॉपी कंस्ट्रक्टर बनाम असाइनमेंट ऑपरेटर


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

कॉपी कंस्ट्रक्टर (सिंटैक्स)

classname (const classname &obj) { // कंस्ट्रक्टर का शरीर }

असाइनमेंट ऑपरेटर (सिंटैक्स)

classname Ob1, Ob2; Ob2 = Ob1;

आइए कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर के बीच विस्तृत अंतर देखें।

कॉपी कंस्ट्रक्टर
असाइनमेंट ऑपरेटर
कॉपी कंस्ट्रक्टर मूल रूप से एक ओवरलोडेड कंस्ट्रक्टर है
असाइनमेंट ऑपरेटर मूल रूप से एक ऑपरेटर है।
यह नए ऑब्जेक्ट को पहले से मौजूद ऑब्जेक्ट के साथ आरंभ करता है
यह एक ऑब्जेक्ट के मान को दूसरे ऑब्जेक्ट को निर्दिष्ट करता है जो दोनों पहले से मौजूद हैं।
कॉपी कंस्ट्रक्टर का उपयोग तब किया जाता है जब किसी मौजूदा ऑब्जेक्ट के साथ एक नया ऑब्जेक्ट बनाया जाता है
इस ऑपरेटर का उपयोग तब किया जाता है जब हम मौजूदा ऑब्जेक्ट को नए ऑब्जेक्ट में निर्दिष्ट करना चाहते हैं।
दोनों ऑब्जेक्ट्स अलग मेमोरी स्थानों का उपयोग करते हैं।
एक मेमोरी स्थान उपयोग किया जाता है लेकिन अलग-अलग रेफरेंस वेरिएबल उसी स्थान को इंगित कर रहे हैं।
यदि क्लास में कोई कॉपी कंस्ट्रक्टर परिभाषित नहीं है, तो कंपाइलर एक प्रदान करता है।
यदि असाइनमेंट ऑपरेटर ओवरलोड नहीं है तो बिटवाइज़ कॉपी बनाई जाएगी

 

 

 


  1. - C++ में असाइनमेंट ऑपरेटर और कॉपी कंस्ट्रक्टर में क्या अंतर है?

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

  1. - C++ में delete() ऑपरेटर

    delete ऑपरेटर का उपयोग मेमोरी को डीएलोकेट करने के लिए किया जाता है। यूजर के पास इस delete ऑपरेटर द्वारा बनाए गए पॉइंटर वेरिएबल को डीएलोकेट करने का विशेषाधिकार होता है। C++ भाषा में delete ऑपरेटर का सिंटैक्स निम्नलिखिक है, delete pointer_variable; आवंटित मेमोरी ब्लॉक को डिलीट करने का सिंटैक्स निम्नलि

  1. - C++ में कॉपी कंस्ट्रक्टर

    कॉपी कंस्ट्रक्टर क्या है? एक प्रकार का कंस्ट्रक्टर जो समान क्लास के मौजूदा ऑब्जेक्ट से नया ऑब्जेक्ट बनाता और आरंभ करता है। यदि परिभाषित न हो तो कंपाइलर डिफॉल्ट कॉपी कंस्ट्रक्टर बनाता है (शैलो कॉपी)। पॉइंटर सदस्यों या डायनामिक मेमोरी वाली क्लास के लिए डीप कॉपी कंस्ट्रक्टर आवश्यक है। सिंटैक्स ClassN