Function overloading c++ In Hindi
फ़ंक्शन ओवरलोडिंग C++ प्रोग्रामिंग का एक इम्पोर्टेन्ट बिल्ट-इन फीचर्स है. जो C++ प्रोग्रामर को किसी भी प्रोगाम में एक नाम से लेकिन मल्टीप्ल इंडिविजुअल वेरिएबल पैरामीटर लिस्ट वाले कई फ़ंक्शन डिक्लेअर करने में हेल्प करते है। इन डिक्लेअर यूजर डिफाइन फ़ंक्शन में मल्टीप्ल इंडिविजुअल नंबर या डाटा टाइप के वेरिएबल या पैरामीटर हो सकते हैं। फ़ंक्शन ओवरलोडिंग कांसेप्ट आपके बेसिक प्रोग्राम की रीडेबिलिटी और कम्पेटिबिलिटी को इम्प्रूव करने में हेल्प करते है, क्योंकि कोई भी यूजर डिफाइन फंक्शन एक स्पेसिफिक या ऐसे फ़ंक्शन को प्रोवाइड करता है. जो किसी प्रोग्राम में एक जैसे सिमिलर फंक्शन ऑपरेशन को परफॉर्म करते हैं. लेकिन ये डिक्लेअर फंक्शन मल्टीप्ल इंडिविजुअल डाटा टाइप या नंबर ऑफ़ आर्गुमेंट को डील करने में हेल्प करते हैं।

C++ प्रोग्रामिंग में डिक्लेअर ओवरलोडेड फ़ंक्शन को उनके वेरिएबल पैरामीटर की संख्या या डाटा टाइप से सेपरेट किया जाता है. लेकिन इनके रिटर्न डाटा टाइप मेथड से नहीं।
Important features of the function overloading concept in C++.
- Same function name – फंक्शन प्रोग्राम में डिक्लेअर सभी ओवरलोडेड फ़ंक्शन मेथड का नाम एक जैसा या सिमिलर होना चाहिए।
- Different parameters – किसी प्रोगाम में डिक्लेअर फंक्शन पैरामीटर वेरिएबल नंबर या यूजर डिफाइन डाटा टाइप के हिसाब से इंडिविजुअल सेपरेटेड होते हैं।
- Return type does not differentiate overloaded functions – याद रहे, C++ यूजर सिर्फ़ मल्टीप्ल इंडिविजुअल रिटर्न डाटा टाइप बेस्ड पर फ़ंक्शन को ओवरलोड नहीं कर सकते है।
- Compile-time resolution – किसी प्रोग्राम में डिक्लेअर फ़ंक्शन को पास किए गए वेरिएबल आर्गुमेंट वैल्यू के आधार पर कंपाइल टाइम पर प्रॉपर फ़ंक्शन सलेक्ट किया जाता है।
syntax for function overloading in C++.
return_type function_name(parameter1, parameter2, …);
यहाँ आप इस फंक्शन सिंटेक्स का यूज़ का एक ही नाम जैसे लेकिन कई इंडिविजुअल सेपरेट वेरिएबल पैरामीटर डाटा टाइप या नंबर वाले फ़ंक्शन डिफ़ाइन कर सकते हैं।
Example of function overloading in C++.
#include <iostream>
using namespace std;
// here total Function used to total two integers parameter value
int total(int p, int q) {
return p + q;
}
// here total Function used to total three integers parameter value
int total(int p, int q, int r) {
return p + q + r;
}
// here total Function used to total two double data type parameter value
double total(double p, double q) {
return p + q;
}
int main() {
int total1 = total(7, 2); // here this function Calls the total(int, int) parameter value
int total2 = total(8, 1, 7); // here this function Calls the total(int, int, int) parameter value
double total3 = total(7.3, 4.4); // here this function Calls the total (double, double) parameter value
cout << “Output of total two integer parameter [7, 2] value = ” << total1 << endl;
cout << “Output of total two integer parameter [8, 1, 7] value = ” << total2 << endl;
cout << “Output of total two double parameter [7.3, 4.4] value = ” << total3 << endl;
return 0;
}
explanation of function overloading in C++.
- यहाँ फर्स्ट यूजर डिफाइन फ़ंक्शन total (int, int) दो इंडिविजुअल इंटीजर वैल्यू को टोटल करता है।
- यहाँ सेकंड यूजर डिफाइन फ़ंक्शन total (int, int, int) तीन इंडिविजुअल इंटीजर वैल्यू को टोटल करता है।
- यहाँ थर्ड यूजर डिफाइन फ़ंक्शन total (double, double) दो इंडिविजुअल डबल वैल्यू को टोटल करता है।
- यहाँ इस एक्साम्प्ल में, C++ यूजर ने total फ़ंक्शन को तीन बार अलग अलग डाटा टाइप के साथ ओवरलोड किया है। जिसमे पास किए गए टोटल फंक्शन आर्गुमेंट्स नम्बर्स और उनके डिफाइन डाटा टाइप के आधार पर एग्जेक्ट फ़ंक्शन को कॉल किया जाता है।
Function overloading rules in C++.
Varying number of arguments – C++ यूजर किसी फंक्शन में वेरिएबल पैरामीटर्स नम्बर्स को मॉडिफाई कर किसी फ़ंक्शन को ओवरलोड कर सकते हैं।
#include <iostream>
using namespace std;
// here it Multiply two integers parameter value
int multiply(int p, int q) {
return p * q;
}
// here it Multiply three integers parameter value
int multiply(int p, int q, int r) {
return p * q * r;
}
int main() {
int m = 3, n = 2, o = 9;
cout << “multpley of 2 integer value [3,2] = ” << multiply(m, n) << endl;
cout << “multpley of 2 integer value [3,2,9] = ” << multiply(m, n, o) << endl;
return 0;
}
Explanation of Varying Number of Arguments.
- यहाँ इस प्रोग्राम में फर्स्ट multiply फ़ंक्शन दो इंटीजर डाटा टाइप वैल्यू को p * q को मल्टीप्लाई करता है।
- वही सेकंड फ़ंक्शन तीन इंटीजर वैल्यू p * q * r को मल्टीप्लाई करता है।
Different types of arguments – C++ यूजर किसी फंक्शन प्रोग्राम में मल्टीप्ल सेपरेटेड इंडिविजुअल डाटा टाइप वेरिएबल पैरामीटर्स को अप्लाई करके भी कस्टम फंक्शन मेथड को ओवरलोड कर सकते हैं।
#include <iostream>
using namespace std;
// here it Add two integers parameter value
int addition(int m, int n) {
return m + n;
}
// here it Add two double parameter value
double addition(double m, double n) {
return m + n;
}
int main() {
int p = 3, q = 9;
double l = 7.2, m = 6.3;
cout << “addition of integers parameter value – ” << addition(p, q) << endl;
cout << “addition of double parameter value – ” << addition(l, m) << endl;
return 0;
}
Explanation of Different types of arguments.
- यहाँ इस प्रोग्राम में फर्स्ट फ़ंक्शन दो इंटीजर पैरामीटर वैल्यू को ऐड करता है।
- वही सेकंड फ़ंक्शन दो डबल्स डाटा टाइप पैरामीटर वैल्यू को ऐड करता है।
Default Arguments – C++ यूजर किसी फंक्शन प्रोग्राम में ओवरलोडेड फ़ंक्शन में डिफ़ॉल्ट आर्गुमेंट को भी अप्लाई कर सकते हैं. लेकिन डिफ़ॉल्ट आर्गुमेंट कंडीशन में कंपाइलर प्रोवाइड किये गए फंक्शन पैरामीटर आर्गुमेंट के बेस पर यह फिक्स करता है कि मौजूदा प्रोग्राम में कौन सा फ़ंक्शन कब कॉल करना है।
int sub (int p, int q = 10) {
return p + q;
}
Explanation of Default Arguments.
- यहाँ इस प्रोग्राम में इस फ़ंक्शन को एक या दोनों आर्गुमेंट के साथ कॉल किया जा सकता है।
Function Overloading Concept with Different Return Types.
किसी यूजर डिफाइन C++ फंक्शन प्रोग्राम में, आप सिर्फ़ उनके रिटर्न डाटा टाइप मेथड के आधार पर किसी डिक्लेअर फ़ंक्शन को ओवरलोड नहीं कर सकते है। यदि किसी प्रोग्राम में रिटर्न डाटा टाइप अलग अलग है. लेकिन फंक्शन में डिक्लेअर वेरिएबल पैरामीटर की लिस्ट एक जैसी सिमिलर है, तो उस कंडीशन में कंपाइलर मौजूदा फ़ंक्शन पैरामीटर के बीच कोई फ़र्क नहीं कर पाएगा, और इससे मौजूदा प्रोग्राम में कम्पाइलेशन एरर डिस्प्ले होगा।
Example of incorrect C++ function overloading.
#include <iostream>
using namespace std;
int total(int p, int q) {
return p + q;
}
double total(int p, int q) { // display Error: here it Cannot overload based only on return type
return p + q;
}
int main() {
cout << total(1, 2) << endl;
return 0;
}
Explanation of Function Overloading Concept with Different Return Types.
- यहाँ इस प्रोग्राम में कम्पाइलेशन एरर डिस्प्ले होगा, क्योंकि यहाँ दोनों यूजर डिफाइन फ़ंक्शन की पैरामीटर लिस्ट एक जैसी सिमिलर है, और इनके सिर्फ़ रिटर्न डाटा टाइप मेथड में डाटा टाइप पैरामीटर डिफरेंस है। इस वजह से C++ यहाँ सिर्फ़ एक रिटर्न डाटा टाइप के आधार पर फंक्शन ओवरलोडिंग की परमिशन प्रोवाइड नहीं करता है।
