मैं अपने सी ++ में कुछ संशोधन कर रहा हूं, और मैं मिनट में ऑपरेटर ओवरलोडिंग से निपट रहा हूं, खासकर "=" (असाइनमेंट) ऑपरेटर। मैं ऑनलाइन देख रहा था और चर्चा करने वाले कई विषयों पर आया। मेरे अपने नोट्स में, मैं अपने सभी उदाहरणों की तरहअसाइनमेंट ऑपरेटर ऑब्जेक्ट का संदर्भ क्यों देता है?
class Foo
{
public:
int x;
int y;
void operator=(const Foo&);
};
void Foo::operator=(const Foo &rhs)
{
x = rhs.x;
y = rhs.y;
}
कुछ के रूप में नीचे ले जाया सभी संदर्भों को मैं ऑनलाइन पाया है, मैंने देखा है कि ऑपरेटर स्रोत ऑब्जेक्ट के लिए एक संदर्भ देता है। ऑब्जेक्ट के संदर्भ को वापस करने का सही तरीका क्यों नहीं है जैसा कि कुछ भी नहीं है?
सही तरीका है जो कुछ भी तरह से अर्थ विज्ञान आप चाहते हैं को लागू करता है; _idiomatic_ तरीका निश्चित रूप से 'टी &' ('आपके उदाहरण में' Foo & ') वापस करने के लिए है। – ildjarn
@MooingDuck, मुझे लगता है कि मैंने गलत सवाल का जवाब दिया। मैं इस धारणा पर जा रहा था कि मेरे नोट गलत थे, लेकिन जानना चाहते थे कि क्यों अधिक से अधिक सही था। की – maccard
संभव डुप्लिकेट [असाइनमेंट ऑपरेटर एक संदर्भ वापस जाने के लिए * यह C++] (http://stackoverflow.com/questions/5669813/assignment-operator-return-a-reference-to-this-in-c); भी [एक असाइनमेंट ऑपरेटर के साथ इस * रिटर्निंग] (http://stackoverflow.com/questions/3248469/returning-this-with-an-assignment-operator) –