कोड निम्न प्रकार से होता है:
टेम्पलेट & class; InputIterator, class OutputIterator & gt; इनलाइन आउटपुट इटरेटर प्रतिलिपि (InputIterator सबसे पहले, InputIterator, अंतिम, आउटपुट इटेरेलेटर परिणाम) {वापसी __copy_dispatch & lt; InputIterator, OutputIterator & gt; () (प्रथम, अंतिम, परिणाम); } / / एक अधिभार संस्करण इनलाइन चार * प्रतिलिपि (const char * पहले, const char * last, char * परिणाम) {memmove (परिणाम, पहले, अंतिम - पहले); रिटर्न परिणाम + (अंतिम - पहले); } अगर मैं कॉपी (int *, int *) को कॉल करता हूं, जो सबसे अच्छा मेल है, क्या कम्पाइलर एक नया फ़ंक्शन उपयोग को int * टेम्पलेट पैरामीटर के रूप में, या int * को char * में कनवर्ट किया जाएगा। और अगर मैं copy पर कॉल करता हूं ( चार [], चार []) नोटिस मैं सिर्फ पैरामीटर के प्रकार को ध्यान में रखने के लिए char [] का उपयोग करता हूं।
चूंकि int * को char * के लिए परस्पर रूप से परिवर्तनीय नहीं है और न ही const char * के लिए परिवर्तनीय नहीं है टेम्पलेट फ़ंक्शन को बुलाया जाएगा। टेम्पलेट फ़ंक्शन को निकालने के परिणामस्वरूप समय त्रुटि संकलित हो जाएगी। सुझाव: कंपाइलर के साथ खेलने के लिए बहुत अच्छा मूल्य है आप
std :: cout & lt; & lt; जैसे लाइन जोड़ सकते हैं। "टेम्पलेट फ़ंक्शन बुलाया। \ N"; अपने अधिभार में या उस प्रकार की सामग्री को करने के लिए डिबगर का उपयोग करें यह एक महान सीखने का अनुभव है आप परिचय के लिए कुछ सी ++ किताबें भी पढ़ सकते हैं।
No comments:
Post a Comment