c++ - Why cannot re-assign to a reference to istream / ostream? -


इस सवाल का पहले से ही एक उत्तर है: < 9 उत्तरों

यह sesms में सी + + यह ठीक है किसी संदर्भ को फिर से असाइन करने के लिए, इसे किसी दूसरे ऑब्जेक्ट पर बाउंडिंग करना। हालांकि, नीचे दिए गए कोड को संकलित नहीं किया जा सकता है:

  ostream & os_ref = cerr; Os_ref = cout;  

क्या कोई मुझे बता सकता है कि क्या गलत है? त्रुटि की जानकारी नीचे सूचीबद्ध है।

  temp.cpp: फ़ंक्शन 'int main ()' में: temp.cpp: 15: 12: त्रुटि: हटाए गए फ़ंक्शन का उपयोग 'std :: basic_ostream & lt; char & gt ; & amp; Std :: basic_ostream & lt; char & gt; :: ऑपरेटर = (const std :: basic_ostream & lt; char & gt; & amp;); os_ref = cout; ^ फ़ाइल में /usr/include/c++/4.9/iostream:39:0 से शामिल temp.cpp से: 1: /usr/include/c++/4.9/ostream:58:11: ध्यान दें: 'std :: basic_ostream & LT; चार & gt; & amp; std :: basic_ostream & LT; चार & gt; :: ऑपरेटर = (स्थिरांक std :: basic_ostream & LT; चार & gt; & amp;) 'परोक्ष हटा दी जाती है क्योंकि डिफ़ॉल्ट परिभाषा हैं बीमार का गठन किया जा: वर्ग basic_ostream: आभासी सार्वजनिक basic_ios & LT; _CharT, _Traits & gt; ^ /usr/include/c++/4.9/ostream:58:11: त्रुटि: हटाए गए फ़ंक्शन का उपयोग 'std :: basic_ios & lt; char & gt; & amp; std :: basic_ios & LT; चार & gt; :: ऑपरेटर = (स्थिरांक std :: basic_ios & LT; चार & gt; & amp;) 'फ़ाइल में /usr/include/c++/4.9/ios:44:0 से शामिल है, से / usr / शामिल / c ++ /4.9/ostream38, /usr/include/c++/4.9/iostream39 से, temp.cpp से: 1: /usr/include/c++/4.9/bits/basic_ios.h:66:11: नोट: ' std :: basic_ios & LT; चार & gt; & amp; std :: basic_ios & LT; चार & gt; :: ऑपरेटर = (स्थिरांक std :: basic_ios & LT; चार & gt; & amp;) 'परोक्ष हटा दी जाती है क्योंकि डिफ़ॉल्ट परिभाषा हैं बीमार का गठन किया जा: वर्ग basic_ios: सार्वजनिक ios_base ^ फ़ाइल में / usr / से शामिल शामिल / c ++ / 4.9 / ios: 42: 0, /usr/include/c++/4.9/ostream:38 से, /usr/include/c++/4.9/iostream:39 से, temp.cpp से: 1: / usr / शामिल करें / c ++ / 4.9 / bits / ios_base.h: 789: 5: त्रुटि: 'std :: ios_base & amp; Std :: ios_base :: operator = (const std :: ios_base & amp;) 'है निजी ऑपरेटर = (const ios_base & amp;); ^ फ़ाइल में /usr/include/c++/4.9/ios:44:0 से, /usr/include/c++/4.9/ostream:38 से, /usr/include/c++/4.9/iostream:39 से अस्थायी से, शामिल .cpp: 1: /usr/include/c++/4.9/bits/basic_ios.h:66:11: त्रुटि: इस संदर्भ वर्ग के भीतर basic_ios: सार्वजनिक ios_base ^  

सी ++ में यह किसी अन्य ऑब्जेक्ट पर बाध्य होने के संदर्भ को पुनः असाइन करने के लिए ठीक है।

नहीं , यह नहीं है

क्या कोई मुझे बता सकता है कि गलत क्या है?

सी ++ में, आप किसी अन्य ऑब्जेक्ट पर इसे बाँध करने के लिए कोई संदर्भ पुनः निर्दिष्ट नहीं कर सकते। एक संदर्भ दूसरे ऑब्जेक्ट के लिए एक उपनाम है यदि आप एक संदर्भ "निर्दिष्ट" करते हैं, तो आप निर्दिष्ट ऑब्जेक्ट को निर्दिष्ट कर रहे हैं, ऑब्जेक्ट को संदर्भ नहीं संदर्भित कर रहे हैं।

उदाहरण के लिए:

  फ्लैग int = 3 , बी = 4; इंट और रेफरी = ए; रेफरी = बी; // जैसे एक = ख; Std :: cout & lt; & lt; एक & lt; & lt; std :: endl; // प्रिंट 4  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -