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

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

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

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

classname (const classname &obj) {
   // body of constructor
}

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

classname Ob1, Ob2;
Ob2 = Ob1;

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


कॉपी कंस्ट्रक्टर
<वें शैली ="पाठ-संरेखण:केंद्र;">असाइनमेंट ऑपरेटर
कॉपी कंस्ट्रक्टर मूल रूप से एक ओवरलोडेड कंस्ट्रक्टर है
असाइनमेंट ऑपरेटर मूल रूप से एक ऑपरेटर होता है।
यह पहले से मौजूद ऑब्जेक्ट के साथ नए ऑब्जेक्ट को इनिशियलाइज़ करता है
यह एक वस्तु का मान दूसरी वस्तु को निर्दिष्ट करता है जो दोनों पहले से मौजूद हैं।
कॉपी कंस्ट्रक्टर का उपयोग तब किया जाता है जब किसी मौजूदा ऑब्जेक्ट के साथ कोई नया ऑब्जेक्ट बनाया जाता है
इस ऑपरेटर का उपयोग तब किया जाता है जब हम मौजूदा ऑब्जेक्ट को नई ऑब्जेक्ट को असाइन करना चाहते हैं।
दोनों ऑब्जेक्ट अलग-अलग मेमोरी लोकेशन का उपयोग करते हैं।
एक स्मृति स्थान का उपयोग किया जाता है लेकिन विभिन्न संदर्भ चर एक ही स्थान की ओर इशारा कर रहे हैं।
यदि कक्षा में कोई कॉपी कंस्ट्रक्टर परिभाषित नहीं है, तो कंपाइलर एक प्रदान करता है।
यदि असाइनमेंट ऑपरेटर ओवरलोडेड नहीं है तो बिटवाइज कॉपी बनाई जाएगी


  1. C++ में ++i और i++ में क्या अंतर है?

    ++ के प्रत्यय और उपसर्ग संस्करणों के बीच एक बड़ा अंतर है। उपसर्ग संस्करण (यानी, ++i) में, i का मान बढ़ा हुआ है, और व्यंजक का मान i का नया मान है। तो मूल रूप से यह पहले इंक्रीमेंट करता है और फिर एक्सप्रेशन को एक मान प्रदान करता है। पोस्टफ़िक्स संस्करण (यानी, i++) में, i का मान बढ़ा हुआ है, लेकिन व्य

  1. C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में किसी वर्ग के सदस्यों तक पहुंचने के लिए किया जाता है। वे बस विभिन्न परिदृश्यों में उपयोग किए जाते हैं। सी ++ में, वर्ग, संरचना, या संघ के रूप में घोषित प्रकारों को वर्ग प्रकार माना जाता है। तो निम्नलिखित उन तीनों को संदर्भित करता है। a.b का उपयोग केवल तभी किय

  1. पायथन में =और ==ऑपरेटरों के बीच क्या अंतर है?

    पायथन में =प्रतीक को असाइनमेंट . के रूप में परिभाषित किया गया है ऑपरेटर। इसके बाईं ओर एक चर और इसके दाईं ओर एक अभिव्यक्ति की आवश्यकता होती है। दाईं ओर के व्यंजक का मान बाईं ओर के चर को सौंपा गया है। चर के व्यंजक और नाम विनिमेय नहीं हैं। >>> a=10 >>> b=20 >>> c=a+b >>