C ++ Funksjonsoverbelastning

C ++ Funksjonsoverbelastning

C ++ er et fleksibelt programmeringsspråk for generell formål. Dette programmeringsspråket ble opprinnelig opprettet av Bjarne Stroustrup, en dansk dataforsker, tilbake i 1985. C ++ støtter polymorfisme, arv og mer. Denne artikkelen dekker funksjon overbelastning for å oppnå polymorfisme i kompileringstid i C ++ programmeringsspråket.

Hva er en funksjon?

En funksjon er ikke annet enn et bestemt stykke kode som utfører en spesifikk oppgave basert på innspill som er gitt, og den returnerer de forespurte resultatene til brukeren i form av en utgang. Funksjoner brukes til å eliminere repeterende kode i store kodebaser.

Etter å ha definert en funksjon, kan du bruke den på et senere tidspunkt, enten i samme program eller i et annet program.

Funksjonssyntaks

En funksjon i C ++ har følgende syntaks:

ReturnType FunctionName (parameter_list)

..
..
return return_value;

Returnype, parameter_list og returerklæring er valgfritt. En funksjon i C ++ kan returnere maksimalt en verdi. Hvis en funksjon ikke returnerer noen verdi, bør returtypen defineres som tomrom.

Hva er funksjon overbelastning?

I C ++ kan flere funksjonsdefinisjoner ha samme funksjonsnavn, men med forskjellige parametere. Dette kalles funksjon overbelastning. Ved hjelp av funksjonens overbelastningsfunksjon kan kompileringstidspolymorfisme oppnås i C++.

Funksjoner kan overbelastes på følgende måter:

  1. Antall parametere kan være forskjellige
  2. Datatypen på parametrene kan være forskjellige
  3. Sekvensen av parametrene kan være forskjellig

Avkastningsverdien er imidlertid ikke vurdert for overbelastning av funksjoner.

Følgende funksjoner er overbelastet:

  1. int tillegg (int a, int b)
  2. Float Addition (Float F, Gloat G)
  3. Float Addition (Float F, Int I)
  4. Float Addition (int I, Float F)
  5. int tillegg (int a, int b, int c)
  6. Float Addition (Float F, Float G, Float H)

Som du kan se, ved hjelp av funksjonens overbelastningsfunksjon i C ++, kan det være flere definisjoner/funksjonaliteter med samme funksjonsnavn og i samme omfang.

Uten funksjonens overbelastningsfunksjon, må du skrive en egen funksjon [for eksempel Addition_1 (), Addition_2 () osv.] For hver variasjon for hver variasjon. For eksempel kan det hende du må skrive Addition_1 () for å legge til to heltall, Addition_2 () for å legge til to flottører, og så videre. Imidlertid, som du kan se ovenfor, kan funksjonens overbelastningsfunksjon brukes til å definere flere variasjoner av "Addition ()" -funksjonen mens du fremdeles holder samme funksjonsnavn.

Følgende funksjoner anses ikke for å være overbelastet fordi den eneste forskjellen mellom disse to er returtypen (returtypen ikke anses for funksjonsoverbelastning i C ++):

  1. int tillegg (int a, int b)
  2. Float Addition (int a, int b)

Eksempler

Nå som du forstår overbelastningsbegrepet, vil vi gå gjennom et par arbeidseksempelprogrammer for å forstå dette konseptet tydeligere. Vi vil dekke følgende eksempler:

  1. Eksempel 1: Enkel funksjon
  2. Eksempel 2: Enkel tilleggsfunksjon
  3. Eksempel 3: Funksjonsoverbelastning (1)
  4. Eksempel 4: Funksjonsoverbelastning (2)
  5. Eksempel 5: Funksjonsoverbelastning (3)

De to første eksemplene forklarer hvordan normale funksjoner fungerer i C ++, mens de tre siste eksemplene viser funksjonens overbelastningsfunksjon i C++.

Eksempel 1: Enkel funksjon

I dette eksemplet vil vi demonstrere hvordan en enkel funksjon kan defineres og kalles i C++. Vi vil definere en klasse som heter “Display” og en offentlig funksjon som heter “Display ().”Fra“ Main () ”-funksjonen, vil vi kalle“ Display () ”-funksjonen ved hjelp av" Display "-klasseobjektet (D).

#inkludere
ved hjelp av navneområdet STD;
Klassedisplay

offentlig:
void display ()
cout << "Hello World!" << endl;

;
int main ()

Display d;
d.vise();
return 0;

Eksempel 2: Enkel tilleggsfunksjon

I dette eksemplet vil vi demonstrere hvordan vi kan definere en enkel "tillegg ()" -funksjon i C++. Vi vil definere en klasse som heter “Demoadd” og en offentlig funksjon som heter “Addition ().”Fra“ Main () ”-funksjonen, vil vi kalle“ Addition () ”-funksjonen ved hjelp av" Demoadd "-klasseobjektet (D).

I dette eksemplet godtar den nåværende implementeringen av "Addition ()" -funksjonen bare to heltallparametere. Det betyr at den nåværende "tillegg ()" -funksjonen er i stand til å legge til bare to heltall.

For å legge til tre heltall i stedet for to, kan en funksjon med et annet navn, for eksempel “Addition_1 ()”, defineres. I C ++ kan en funksjon overbelastes, noe som betyr at en annen definisjon av "Addition ()" -funksjonen kan defineres for å legge til tre heltall og beholde samme navn, i.e., "addisjon().”I neste eksempel vil vi se på hvordan du kan overbelaste" Addition () "-funksjonen.

#inkludere
ved hjelp av navneområdet STD;
klasse Demoadd

offentlig:
int tillegg (int a, int b)
int resultat;
resultat = a + b;
returresultat;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res;
res = d.tillegg (I1, I2);
cout << "Result = " << res << endl;
retur 0;

Eksempel 3: Funksjonsoverbelastning (1)

I forrige eksempel definerte vi “Addition ()” -funksjonen for å legge til to heltall og returnere det beregnede resultatet. Nå, i dette eksemplet, vil vi overbelaste funksjonen "tillegg ()" for å legge til tre heltall. Så vi vil kunne kalle "tillegg ()" -funksjonen med to heltallsargumenter, samt tre heltallsargumenter.

Uten funksjonens overbelastningsfunksjon, må vi skrive en annen funksjon med et annet navn.

#inkludere
ved hjelp av navneområdet STD;
klasse Demoadd

offentlig:
// Første funksjonsdefinisjon av tillegg ()
int tillegg (int a, int b)

int resultat;
resultat = a + b;
returresultat;

// Overbelastet versjon av Addition () -funksjonen
int tillegg (int a, int b, int c)

int resultat;
resultat = a + b + c;
returresultat;

;
int main ()

Demoadd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.tillegg (I1, I2); // tillegg () med 2 parametere
res2 = d.tillegg (I1, I2, I3); // tillegg () med 3 parametere
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retur 0;

Eksempel 4: Funksjonsoverbelastning (2)

I tidligere deler av denne artikkelen lærte du at funksjon overbelastning kan utføres basert på forskjeller i parametertype. Her har vi overbelastet “Addition ()” -funksjonen basert på parameterens datatype. I den første versjonen av tilleggsfunksjonen vil vi legge til to heltallstypevariabler; Og i den andre versjonen vil vi legge til to float -variabler.

#inkludere
ved hjelp av navneområdet STD;
klasse Demoadd

offentlig:
// Første definisjon av tillegg ()
int tillegg (int a, int b)

int resultat;
resultat = a + b;
returresultat;

// overbelastet funksjonsdefinisjon
Float Addition (Float F, Float G)

FLOAT -resultat;
resultat = f + g;
returresultat;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res1;
FLOAT F1 = 10.5, F2 = 20.7, res2;
res1 = d.tillegg (I1, I2); // tillegg (int a, int b) vil bli kalt
res2 = d.Tillegg (F1, F2); // tillegg (float f, flat g) vil bli kalt
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retur 0;

Eksempel 5: Funksjonsoverbelastning (3)

I dette eksemplet er "Addition ()" -funksjonen overbelastet basert på forskjeller i sekvensen til parameterlisten. Dette er en annen måte å overbelaste en funksjon i C++.

#inkludere
ved hjelp av navneområdet STD;
klasse Demoadd

offentlig:
// Første funksjonsdefinisjon av tillegg () -funksjonen
Float Addition (int a, float b)

FLOAT -resultat;
resultat = (float) a + b;
returresultat;

// overbelastet funksjonsdefinisjon av tillegg () funksjon
Float Addition (Float A, Int B)

FLOAT -resultat;
resultat = a + (float) b;
returresultat;

;
int main ()

Demoadd d;
int i1 = 10;
FLOAT F1 = 10.5, res1, res2;
res1 = d.tillegg (I1, F1); // tillegg (int a, float b) vil bli kalt
res2 = d.tillegg (F1, I1); // tillegg (float a, int b) vil bli kalt
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retur 0;

Konklusjon

C ++ er et generelt og fleksibelt programmeringsspråk som er mye brukt i forskjellige domener. Dette programmeringsspråket støtter både kompileringstid og polymorfisme av kjøretid og kjøretid. I denne artikkelen lærte du hvordan du oppnår polymorfisme i Compile-Time i C ++ ved å bruke funksjonens overbelastningsfunksjon. Dette er en veldig nyttig funksjon i C ++ som hjelper programmerere til å skrive lesbar kode. Det kan også være nyttig for å skrive gjenbrukbar kode.