Overloaded functions in C++ -


क्या यह फ़ंक्शंस ओवरलेओड फ़ंक्शंस है?

  शून्य f (int a, int b) { } Void f (int & a, int & amp; b) {} void f (int * a, int * b) {} void f (const int, const int b) {}   

या ओवरलोडिंग फ़ंक्शन तब होती है जब संख्या या प्रकार के तर्क भिन्न होते हैं?

नंबर 1, 2, 3 रहे। नंबर 4 का पुनः वर्गीकरण नंबर 1।

आप देखते हैं, शीर्ष-स्तरीय कॉन्स्ट-क्वालिफायर फ़ंक्शन घोषणा को प्रभावित नहीं करते हैं। वे उस फ़ंक्शन को बदलते हैं जिसमें आप फ़ंक्शन परिभाषा के अंदर उनका उपयोग करते हैं, लेकिन यह अभी भी समान कार्य है

  शून्य f (int); शून्य एफ (कॉन्स्ट इंट); // void f (const int x) redeclares // ऊपर के रूप में {x = 4; // त्रुटि, एक्स const}   

यह, दूसरी ओर ठीक है

  शून्य f (const int); शून्य से ऊपर (int x) // जैसा ऊपर {x = 4; // अब ठीक है}   

ध्यान दें कि गैर-टॉप-स्तरीय कंस ओवरलोड संकल्प में भाग लेते हैं। उदाहरण के लिए

और अंत में ओवरलोड हो रहा है

  शून्य f (int & x) void f (const int & amp; x) , आप पूछ रहे हैं  

या ओवरलोडिंग फ़ंक्शन केवल तभी होती है जब संख्याओं या प्रकार के तर्क भिन्न होते हैं?

हाँ, यह सही है, लेकिन int < / कोड>, int * , और int और विभिन्न प्रकार हैं बेशक, 1 या 3 के मामले में, ज्यादातर मामलों में यह अस्पष्ट कॉल होगा, लेकिन कुछ मामलों में कंपाइलर आपको बता सकता है कि आप किसका मतलब है। उदाहरण के लिए

  शून्य एफ (इंट); शून्य एफ (इंट एण्ड;); F (3) // कॉल f (int) int x = 3; f (x); // अस्पष्ट कॉल;    

Comments