c++ - What happens if there's an 'overloading clash' regarding streams? -
मान लीजिए कि हमारे पास और हमारे पास निम्न वैश्विक विधि भी थी: C ++ कैसे पता चलता है कि कौन सी विधि निम्नलिखित कोड के लिए कॉल करती है: < / P> प्रश्न का पालन करें: सी ++ में सामान्य रूप से ओवरलोड रिज़ॉल्यूशन नियम जटिल हैं। इस मामले में यह जानना उपयोगी है कि ओवरलोड रिज़ॉल्यूशन के प्रयोजनों के लिए एक सदस्य फ़ंक्शन, गैर-सदस्यीय फ़ंक्शन की तरह बर्ताव करता है जो क्लास के संदर्भ में एक प्रथम तर्क के रूप में संदर्भ लेता है, यानी , विकल्प कुछ जैसी है [1] और बेशक वापसी प्रकार कोई फर्क नहीं पड़ता, और पहले अधिभार चुना जाएगा क्योंकि आपका अनुवर्ती- अप सवाल एक अलग सवाल होना चाहिए। यहां कुछ चर्चा है जो संबंधित हो सकती है: [1] नोट: मैं "कुछ ऐसा" कहता हूं क्योंकि यह बिल्कुल सही नहीं है उदाहरण के लिए, ऐसे सदस्य फ़ंक्शन को एक रैवल्यू ऑब्जेक्ट एक्सप्रेशन पर बुलाया जा सकता है, हालांकि एक लावल्यू संदर्भ ऊपर दिखाया गया है। isstream निम्न विधि के साथ उपवर्ग है:
< कोड> SomeStream & amp; ऑपरेटर & gt; & gt; (कुछ और amp; कुछ) {// .. कुछ में डेटा लिखें}
कुछ और ; ऑपरेटर & gt; & gt; (istream & amp; स्ट्रीम, कुछ और amp; कुछ) {//। स्ट्रीम से डेटा में कुछ लिखिए}
उदाहरणऑफ़सामस्ट्रीम & gt; & gt; instanceOfSomething;
SomeStream को
something में लिखने के लिए बेहतर या अधिक सामान्य तरीका क्या है - मुझे
ऑपरेटर & gt; & gt; में
SomeStream के लिए एक और अधिभार जोड़ना चाहिए, जिसमें कोई
कुछ और तर्क लेता है? या मुझे विपरीत दिशा में जाना चाहिए, और
कुछ में एक अधिभार बनाना चाहिए जो कि
somestream लेता है? (वास्तव में
कुछ में नहीं, लेकिन स्पष्ट कारणों के कारण वैश्विक कार्य के रूप में)।
कुछ स्ट्रीम & amp; ऑपरेटर & gt; & gt; (कुछ स्ट्रीम और amp; somestream, कुछ और amp; कुछ)
कुछ और amp; ऑपरेटर & gt; & gt; (istream & amp; स्ट्रीम, कुछ और amp; कुछ)
instanceOfSomeStream & gt; & gt; ; उदाहरण के लिए
SomeStream अधिक
isstream से व्युत्पन्न है।
Comments
Post a Comment