कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर का उपयोग एक ऑब्जेक्ट को दूसरी ऑब्जेक्ट में इनिशियलाइज़ करने के लिए किया जाता है। उनके बीच मुख्य अंतर यह है कि कॉपी कंस्ट्रक्टर नई वस्तु के लिए एक अलग मेमोरी ब्लॉक बनाता है। लेकिन असाइनमेंट ऑपरेटर नई मेमोरी स्पेस नहीं बनाता है। यह पिछले मेमोरी ब्लॉक को इंगित करने के लिए संदर्भ चर का उपयोग करता है।
कॉपी कंस्ट्रक्टर (सिंटैक्स)
classname (const classname &obj) { // body of constructor }
असाइनमेंट ऑपरेटर (सिंटैक्स)
classname Ob1, Ob2; Ob2 = Ob1;
आइए हम कॉपी कंस्ट्रक्टर और असाइनमेंट ऑपरेटर के बीच विस्तृत अंतर देखें।
कॉपी कंस्ट्रक्टर वें> <वें शैली ="पाठ-संरेखण:केंद्र;">असाइनमेंट ऑपरेटर वें> | |
---|---|
कॉपी कंस्ट्रक्टर मूल रूप से एक ओवरलोडेड कंस्ट्रक्टर है | असाइनमेंट ऑपरेटर मूल रूप से एक ऑपरेटर होता है। |
यह पहले से मौजूद ऑब्जेक्ट के साथ नए ऑब्जेक्ट को इनिशियलाइज़ करता है | यह एक वस्तु का मान दूसरी वस्तु को निर्दिष्ट करता है जो दोनों पहले से मौजूद हैं। |
कॉपी कंस्ट्रक्टर का उपयोग तब किया जाता है जब किसी मौजूदा ऑब्जेक्ट के साथ कोई नया ऑब्जेक्ट बनाया जाता है | इस ऑपरेटर का उपयोग तब किया जाता है जब हम मौजूदा ऑब्जेक्ट को नई ऑब्जेक्ट को असाइन करना चाहते हैं। |
दोनों ऑब्जेक्ट अलग-अलग मेमोरी लोकेशन का उपयोग करते हैं। | एक स्मृति स्थान का उपयोग किया जाता है लेकिन विभिन्न संदर्भ चर एक ही स्थान की ओर इशारा कर रहे हैं। |
यदि कक्षा में कोई कॉपी कंस्ट्रक्टर परिभाषित नहीं है, तो कंपाइलर एक प्रदान करता है। | यदि असाइनमेंट ऑपरेटर ओवरलोडेड नहीं है तो बिटवाइज कॉपी बनाई जाएगी |