c++ - call of overloaded âmax(char&, char&)â is ambiguous -
#include & lt; iostream & gt; नेमस्पेस एसटीडी का उपयोग करना; इंट मैक्स (इंट ए, इंट बी) {एक & lt; b? B: a; } टेम्पलेट & lt; typename T & gt; टी मैक्स (टी ए, टी बी) {एक & lt; b? B: a; } टेम्पलेट & lt; typename T & gt; टी अधिकतम (टी ए, टी बी, टी सी) {वापसी अधिकतम (अधिकतम (ए, बी), सी); } Int main () {// दो वर्णों के साथ कॉल, काम निरर्थक :: अधिकतम ('सी', 'बी'); // इस तीन कॉल के साथ कॉल नीचे सूचीबद्ध त्रुटि उत्पन्न करती है: :: अधिकतम ('सी', 'बी', 'ए'); वापसी 0; } त्रुटि:
त्रुटि: अतिभारित कॉल (अधिकतम और कॉल, चार और) ??? अतिविशिष्ट है यह नहीं होना चाहिए अधिकतम ('c', 'b', 'a') तीन तर्कों के साथ अतिभारित फ़ंक्शन को कॉल करें?
बात यह है कि, पहले से ही एक अधिकतम में std और आप नामस्थान std का उपयोग कर रहे हैं; : टेम्पलेट & lt; class T & gt; कॉन्स्ट टी एंड amp; अधिकतम (कॉन्स्ट टी एंड ए, कॉन्स्ट टी एंड बी); तो आपका अधिकतम ('c', 'b', 'a') ठीक कहा जाता है; समस्या इसके अंदर है। टेम्पलेट & lt; typename T & gt; टी अधिकतम (टी ए, टी बी, टी सी) {वापसी अधिकतम (अधिकतम (ए, बी), सी); / * पता नहीं है कि कौन सी अधिकतम लेने के लिए * /} मुझे नहीं पता कि क्यों अधिकतम उपलब्ध है क्योंकि आपने एल्गोरिथ्म शामिल नहीं किया है, लेकिन जाहिरा तौर पर यह है संपादित करें
यदि आप शीर्ष पर का उपयोग करना चाहते हैं: टेम्पलेट & lt; typename T & gt; टी अधिकतम (टी ए, टी बी, टी सी) {वापसी :: अधिकतम (:: अधिकतम (ए, बी), सी); }
Comments
Post a Comment