C ++

C ++ Funksjon Overbelastning

C ++ Funksjon Overbelastning

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

Hva er en funksjon?

En funksjon er ikke noe mer enn et spesifikt stykke kode som utfører en bestemt oppgave basert på inngangene 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 funksjonsnavn (parameterliste)

..
..
returner returverdi;

ReturnType, parameter_list og return statement er valgfritt. En funksjon i C ++ kan returnere maksimalt en verdi. Hvis en funksjon ikke returnerer noen verdi, skal returnType defineres som ugyldig.

Hva er Funksjon Overbelastning?

I C ++ kan flere funksjonsdefinisjoner ha samme funksjonsnavn, men med forskjellige parametere. Dette kalles funksjonsoverbelastning. Ved hjelp av funksjonsoverbelastningsfunksjonen kan polymorfisme med kompileringstid oppnås i C++.

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

  1. Antall parametere kan være forskjellig
  2. Datatypen til parameterne kan være forskjellig
  3. Sekvensen til parametrene kan være forskjellig

Returverdien blir imidlertid ikke vurdert for funksjonsoverbelastning. 

Følgende funksjoner er overbelastet:

  1. int tillegg (int a, int b)
  2. float tillegg (float f, gloat g)
  3. float tillegg (float f, int i)
  4. float tillegg (int i, float f)
  5. int tillegg (int a, int b, int c)
  6. float tillegg (float f, float g, float h)

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

Uten funksjonen for overbelastning av funksjonen, må du skrive en egen funksjon [for eksempel tillegg_1 (), tillegg_2 () osv.] For hver variant. For eksempel kan det hende du må skrive addition_1 () for å legge til to heltall, addition_2 () for å legge til to floats, og så videre. Som du kan se ovenfor, kan funksjonen for overbelastning av funksjonen imidlertid brukes til å definere flere varianter av "tillegg ()" -funksjonen mens du fortsatt beholder det samme funksjonsnavnet.

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

  1. int tillegg (int a, int b)
  2. float tillegg (int a, int b)

Eksempler

Nå som du forstår begrepet funksjonsoverbelastning, 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: Funksjon Overbelastning (1)
  4. Eksempel 4: Funksjon Overbelastning (2)
  5. Eksempel 5: Funksjon Overbelastning (3)

De to første eksemplene forklarer hvordan normale funksjoner fungerer i C ++, mens de tre siste eksemplene viser funksjonen for overbelastning av funksjonen i C++.

Eksempel 1: Enkel funksjon

I dette eksemplet vil vi demonstrere hvordan en enkel funksjon kan defineres og kalles C++. Vi vil definere en klasse kalt “Display” og en offentlig funksjon kalt “display ().”Fra“ main () ”-funksjonen vil vi kalle“ display () ”-funksjonen ved hjelp av klasseobjektet“ Display ”(d).

#inkludere
bruker navneområde std;
klasse Display

offentlig:
ugyldig visning ()

cout << "Hello World!" << endl;

;
int main ()

Skjerm d;
d.vise();
retur 0;

Eksempel 2: Enkel tilleggsfunksjon

I dette eksemplet vil vi demonstrere hvordan du definerer en enkel “tillegg ()” -funksjon i C++. Vi vil definere en klasse kalt “DemoAdd” og en offentlig funksjon kalt “addition ().”Fra“ main () ”-funksjonen vil vi kalle“ addition () ”-funksjonen ved hjelp av klasseobjektet“ DemoAdd ”(d).

I dette eksemplet godtar den nåværende implementeringen av funksjonen “tillegg ()” bare to heltallsparametere. Det betyr at den nåværende “addition ()” - funksjonen bare kan legge til 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 "tillegg ()" -funksjonen kan defineres for å legge til tre heltall og beholde samme navn, i.e., "addisjon().”I neste eksempel vil vi se på hvordan vi kan overbelaste funksjonen“ addition () ”.

#inkludere
bruker navneområde std;
klasse DemoLegg til

offentlig:
int tillegg (int a, int b)

int resultat;
resultat = a + b;
returresultat;

;
int main ()

DemoLegg til d;
int i1 = 10, i2 = 20, res;
res = d.tillegg (i1, i2);
cout << "Result = " << res << endl;
retur 0;

Eksempel 3: Funksjon Overbelastning (1)

I det forrige eksemplet definerte vi funksjonen “tillegg ()” 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 funksjonen "tillegg ()" med to heltallargumenter, samt tre heltallargumenter.

Uten funksjonen for overbelastning av funksjonen, må vi skrive en annen funksjon med et annet navn.

#inkludere
bruker navneområde std;
klasse DemoLegg til

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

int resultat;
resultat = a + b;
returresultat;

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

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

;
int main ()

DemoLegg til d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.tillegg (i1, i2); // tillegg () med to parametere
res2 = d.tillegg (i1, i2, i3); // tillegg () med 3 parametere
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retur 0;

Eksempel 4: Funksjon Overbelastning (2)

I tidligere deler av denne artikkelen lærte du at overbelastning av funksjoner kan utføres basert på forskjeller i parametertype. Her har vi overbelastet funksjonen "tillegg ()" basert på parameterens datatype. I den første versjonen av tilleggsfunksjonen vil vi legge til to variabler av heltallstypen; og i den andre versjonen vil vi legge til to variabler for flytetype.

#inkludere
bruker navneområde std;
klasse DemoLegg til

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

int resultat;
resultat = a + b;
returresultat;

// Overbelastet funksjonsdefinisjon
float tillegg (float f, float g)

flyte resultat;
resultat = f + g;
returresultat;

;
int main ()

DemoLegg til d;
int i1 = 10, i2 = 20, res1;
flyte 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: Funksjon Overbelastning (3)

I dette eksemplet er funksjonen “tillegg ()” overbelastet basert på forskjeller i rekkefølgen til parameterlisten. Dette er en annen måte å overbelaste en funksjon i C++.

#inkludere
bruker navneområde std;
klasse DemoLegg til

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

flyte resultat;
resultat = (flyte) a + b;
returresultat;

// Overbelastet funksjonsdefinisjon av tilleggsfunksjon ()
float addition (float a, int b)

flyte resultat;
resultat = a + (flyte) b;
returresultat;

;
int main ()

DemoLegg til d;
int i1 = 10;
flyte 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 på forskjellige domener. Dette programmeringsspråket støtter både kompileringstid og løpetidspolymorfisme. I denne artikkelen lærte du hvordan du oppnår kompileringstidspolymorfisme i C ++ ved hjelp av funksjonen overbelastningsfunksjonen. Dette er en veldig nyttig funksjon i C ++ som hjelper programmerere å skrive lesbar kode. Det kan også være nyttig for å skrive gjenbrukbar kode.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...