एक कॉपी कंस्ट्रक्टर का उपयोग किसी अन्य ऑब्जेक्ट के डेटा से पहले के अनइंस्टॉल किए गए ऑब्जेक्ट को इनिशियलाइज़ करने के लिए किया जाता है ।
A(const A& rhs) : data_(rhs.data_) {}
उदाहरण के लिए:
A aa;
A a = aa; //copy constructor
एक असाइनमेंट ऑपरेटर का उपयोग किसी अन्य ऑब्जेक्ट के डेटा के साथ पहले आरंभिक ऑब्जेक्ट के डेटा को बदलने के लिए किया जाता है ।
A& operator=(const A& rhs) {data_ = rhs.data_; return *this;}
उदाहरण के लिए:
A aa;
A a;
a = aa; // assignment operator
आप डिफ़ॉल्ट निर्माण प्लस असाइनमेंट द्वारा कॉपी निर्माण की जगह ले सकते हैं, लेकिन यह कम कुशल होगा।
(साइड नोट के रूप में: ऊपर दिए गए मेरे कार्यान्वयन वास्तव में कम्पाइलर अनुदानों को मुफ्त में देने वाले हैं, इसलिए उन्हें मैन्युअल रूप से लागू करने का कोई मतलब नहीं होगा। यदि आपके पास इन दोनों में से एक है, तो संभावना है कि आप मैन्युअल रूप से कुछ संसाधन का प्रबंधन कर रहे हैं। उस स्थिति में, द रूल ऑफ़ थ्री के अनुसार , आपको बहुत संभावना है कि आपको एक दूसरे को भी नष्ट करने की आवश्यकता होगी।)