Funksjonsoverbelastning er en funksjon ved objektorientert programmering der to eller flere funksjoner kan ha samme navn, men forskjellige parametere. Når et funksjonsnavn er overbelastet med forskjellige jobber, kalles det funksjonsoverbelastning. I funksjonsoverbelastning skal funksjonsnavnet være det samme og argumentene skal være forskjellige. Funksjonsoverbelastning kan betraktes som et eksempel på en polymorfismefunksjon i C++.
Hvis flere funksjoner har samme navn, men parameterne til funksjonene skal være forskjellige, kalles funksjonsoverbelastning.
Hvis vi bare må utføre én operasjon og har samme navn på funksjonene øker lesbarheten til programmet.
Anta at du må legge til de gitte tallene, men det kan være et hvilket som helst antall argumenter, hvis du skriver funksjonen som a(int,int) for to parametere, og b(int,int,int) for tre parametere kan være vanskelig for deg å forstå funksjonen til funksjonen fordi navnet er forskjellig.
Parametrene skal følge en eller flere av følgende betingelser for funksjonsoverbelastning:
nbsp
- Parametre bør ha en annen type
add(int a, int b)
legg til (dobbel a, dobbel b)
Nedenfor er implementeringen av diskusjonen ovenfor:
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }> |
>
>Produksjon
sum = 12 sum = 11.5>
- Parametre bør ha et annet nummer
add(int a, int b)
add(int a, int b, int c)
Nedenfor er implementeringen av diskusjonen ovenfor:
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }> |
>
>Produksjon
sum = 12 sum = 15>
- Parametre bør ha en annen parametersekvens.
add(int a, dobbel b)
add(dobbel a, int b)
Nedenfor er implementeringen av diskusjonen ovenfor:
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }> |
>
>Produksjon
java switch int
sum = 12.5 sum = 11.5>
Følgende er et enkelt C++ eksempel for å demonstrere funksjonsoverbelastning.
CPP
#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }> |
>
>Produksjon
Here is int 10 Here is float 10.1 Here is char* ten>
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }> |
>
>
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }> |
rdbms
>
>
Hvordan fungerer funksjonsoverbelastning?
- Nøyaktig treff :- (Funksjonsnavn og parameter)
- Hvis en ikke eksakt samsvar er funnet: –
->Char, Unsigned char og short blir forfremmet til en int.
->Float rykker opp til dobbel
- Hvis ingen treff blir funnet :
->C++ prøver å finne en match gjennom standardkonverteringen.
- ANNET FEIL
- Funksjon overbelastning og returtype
- Funksjoner som ikke kan overbelastes i C++
- Funksjon overbelastning og const nøkkelord
- Funksjonsoverbelastning vs funksjonsoverstyring i C++
Nylige artikler om funksjonsoverbelastning i C++