मैं काम ऑपरेटर ओवरलोडिंग के लिए निम्न कोड का इस्तेमाल किया है में अधिक भार:असाइनमेंट ऑपरेटर C++
SimpleCircle::SimpleCircle(const SimpleCircle & rhs)
{
itsRadius = rhs.getRadius();
}
ऊपर ऑपरेटर ओवरलोडिंग कोड में, नकल निर्माता कहा जाता है:
SimpleCircle SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
मेरे कॉपी निर्माता यह है क्योंकि एक नई वस्तु बनाई जा रही है;
SimpleCircle & SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
इसकी पूरी तरह से काम कर रहा है और प्रति निर्माता समस्या से बचा जाता है, लेकिन वहाँ किसी भी अज्ञात मुद्दों (मेरे लिए) इस बारे में है: इसलिए मैं नीचे दिए गए कोड का इस्तेमाल किया?
[कॉपी और स्वैप मुहावरा] पर एक नज़र (http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap ले लो -idiom) – Praetorian
@Praetorian कॉपी और स्वैप मुहावरे अच्छा है अगर आपको पता है कि कोई आइटम असाइनमेंट ऑपरेटर के दौरान फेंक सकता है या यदि आप सॉफ़्टवेयर के साथ काम कर रहे हैं तो आपने विकसित नहीं किया है और पता नहीं है कि कोई फेंक होगा या नहीं। यदि आप अपने सामानों के साथ काम कर रहे हैं और आपको पता है कि प्रतिलिपि का उपयोग करके कोई फेंकता नहीं होगा और स्वैप मुहावरे आवश्यक नहीं है। –