2009-10-15 14 views
17

मुझे पॉइंटर्स के बारे में सभी के बारे में पता है और एम्परसैंड का मतलब है "पता" लेकिन इस स्थिति में इसका क्या अर्थ है?ओस्ट्रीम और ऑपरेटर << (...) जैसे वर्ग नाम के बाद उपयोग किए जाने के लिए एम्परसेंड क्या है?

साथ ही, ऑपरेटरों को अधिभारित करते समय, यह आम तौर पर कॉन्स के साथ पैरामीटर घोषित क्यों करता है?

उत्तर

12

उस मामले आप एक ostream ऑब्जेक्ट के संदर्भ में लौट रहे हैं। एम्परसैंड के बारे में सख्ती से सोच "के पते" हमेशा आपके लिए काम नहीं करेगा। Here संदर्भों पर सी ++ एफएक्यू लाइट से कुछ जानकारी है।

जहां तक ​​कॉन्स जाता है, सी ++ प्रकार की सुरक्षा में स्थिरता बहुत महत्वपूर्ण है और आप जितना कर सकते हैं उतना करना चाहते हैं। एफएक्यू से page उस संबंध में मदद करता है। कॉन्स आपको साइड इफेक्ट से संबंधित परिवर्तनों से परिस्थितियों में आपके डेटा को मकसद करने में मदद करता है जहां आप इसकी अपेक्षा नहीं कर सकते हैं।

3

इसका मतलब है कि चर एक संदर्भ है। यह एक सूचक की तरह है, लेकिन वास्तव में नहीं।

देखें: Reference (C++)

3

सी ++ प्रकार घोषणाओं में, एम्परसेंड "संदर्भ" का मतलब है। इस मामले में operator <<ostream ऑब्जेक्ट का संदर्भ देता है।

के बाद से यह वास्तव में *this रिटर्न यह वास्तव में एक ही ostream वस्तु है, और operator << करने के लिए आप श्रृंखला कॉल कर सकते हैं, इस के समान अर्थ है:

os << "Hello" << " " << "World" << endl; 
+1

'ऑपरेटर <<' अधिकांश प्रोग्रामर का कार्यान्वयन मुठभेड़ का सामना करता है, सदस्य कार्य नहीं, इसलिए इसमें कोई भी शामिल नहीं है। – sbi

6

एम्परसैंड के संदर्भ के आधार पर इसका मतलब 2 अलग-अलग चीजें हो सकता है। आपके विशिष्ट प्रश्न का उत्तर यह है कि यह एक संदर्भ है, न कि "का पता"। वे बहुत अलग चीजें हैं। अंतर को समझना बहुत महत्वपूर्ण है।

C++ Reference

कारण मापदंडों स्थिरांक बनाने के लिए सुनिश्चित करें कि वे समारोह से नहीं बदला जाता है। यह फ़ंक्शन के कॉलर की गारंटी देता है कि वे जो पैरामीटर पास करते हैं उन्हें बदला नहीं जाएगा।

+0

जब आप 'सामान्य' चर पर एक एम्पर्सेंड का उपयोग करते हैं, तो आप मेमोरी में चर का पता ले रहे हैं - यही वह है जिसका अर्थ उमर था। संदर्भों के साथ, और इसका एक अलग अर्थ है हालांकि। – Jesper

+0

जेस्पर, आप सही हैं। मैंने भेद बनाने के लिए अपना जवाब अपडेट किया। – nathan

संबंधित मुद्दे