मैं अतिभारित है इससी ++ में दो से अधिक वस्तुओं के लिए ओवरलोडेड एडिशन असाइनमेंट ऑपरेटर?
class sample
{
private :
int x;
public :
sample(int x1 =0)
{
x = x1;
}
sample operator+(sample s);
};
sample sample::operator+(sample s)
{
x = x + s.x;
return *this;
}
int main()
{
sample s1(10);
sample s2;
s2 = s2 + s1;
return 0;
}
तरह + ऑपरेटर यह सही है? मेरा सवाल यह है कि यदि मैं दो अलग-अलग नमूना वस्तुओं को जोड़ना चाहता हूं तो मैं ओपेरटर को कैसे अधिभारित करूंगा; उदाहरण के लिए s = s1 + s2
;
मुझे मौजूदा कार्यान्वयन के साथ s = s + s1 + s2
करना पसंद है।
यहाँ देखो! http://courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html या यहां http://www.cprogramming.com/tutorial/operator_overloading.html – trumpetlicks
ध्यान दें कि 'ऑपरेटर +' _not_ होना चाहिए '+' के बाईं ओर ऑब्जेक्ट का मान बदलें, लेकिन आपका करता है। यदि आपने 's3 = s1 + s2' लिखा है, तो आपका कोड परिणाम को पकड़ने के लिए' s1' बदल देगा। –
इसके अलावा, 'मुख्य' में 'int' रिटर्न प्रकार है। –