मान लीजिए मैं है निम्नलिखित वर्ग:क्या यह परिभाषित किया गया है?
struct A{
void method(A& otherA) const{
/* Mutate otherA */
}
};
और फिर बाद में मैं इस है:
A myA;
myA.method(myA);
मैं संकलक कि method
this
उदाहरण परिवर्तन नहीं होगा बता दिया है, लेकिन संकलक कि एहसास करता है मैं पैरामीटर के रूप में this
उदाहरण में पास कर सकता हूं?
क्या मैं ऐसा करके सामान तोड़ सकता हूं? क्या यह परिभाषित व्यवहार है?
हाँ आप इसे कर सकते हैं। कंपाइलर यह नहीं जानता था कि वे एक ही उदाहरण हैं या नहीं। यदि आप पारित पैरामीटर बदलना नहीं चाहते हैं तो आपको पैरामीटर प्रकार 'const' बनाना चाहिए। – songyuanyao
@songyuanyao नहीं .... लेकिन मैं इसे – DarthRubik
बदलना चाहता हूं तो यह ठीक रहेगा। आप इसे पारित तर्क के माध्यम से बदल सकते हैं। – songyuanyao