Hvordan implementere funksjonsoverbelastning og overstyring i C ++?



Denne artikkelen vil introdusere deg for Function Overloading And Overriding In C ++, som er to av de svært viktige konseptene i OOPS.

C ++ er en i naturen, og den har forskjellige funksjoner. I denne økten vil vi diskutere hvordan du implementerer funksjonsoverbelastning og funksjonsoverstyring i C ++.

Følgende tips vil bli dekket i denne artikkelen,





Fortsetter med denne artikkelen om funksjonsoverbelastning og overstyring i C ++

Funksjon Overbelastning



Fibonacci tall c ++

Funksjoner med samme navn men forskjellige parametere er tillatt i C ++ og kalles Funksjon Overbelastning . Det kalles også polymorfisme for kompileringstid.

For eksempel:

sum (int a, float b) sum (int a, int b) sum (int a, int b, int c)

Her er det tre funksjoner med samme navn, men det eneste som skiller dem er at parameterne er forskjellige på hver. Så, avhengig av hvilke parametere som sendes, kalles en funksjon.



Hvis returtypene til funksjonene er forskjellige, blir det ansett som ugyldige.

Fortsetter med denne artikkelen om funksjonsoverbelastning og overstyring i C ++

Eksempelkode for funksjon overbelastning

inkluderer bruk av navneområde std klasse Tillegg {offentlig: int legg til (int n1, int n2) {retur n1 + n2} int legg til (int n1, int n2, int n3) {retur n1 + n2}} int main (ugyldig) {Addition en cout< 

Produksjon

Output- Funksjon overbelastning og overstyring i C ++ - Edureka

Forklaring

I programmet over har vi to funksjoner i tilleggsklassen. Begge navngitte add. Den ene har to parametere og den andre har 3 parametere.

I hovedfunksjonen lager vi et objekt for klassetilsetning kalt a. Vi kaller add-funksjonene med henholdsvis 2 og 3 parametere, og funksjonene add kalles og de utfører tillegg.

Slik foregår funksjonen overbelastning.

Fortsetter med denne artikkelen om funksjonsoverbelastning og overstyring i C ++

Funksjon Overstyring

Når en avledet klasse har en funksjon med samme navn som en funksjon av baseklassen, kalles den Funksjon Overstyring. Begge funksjonene må ha de samme parameterne i begge klasser.

Eksempelkode for funksjonsoverstyring

#include ved å bruke namespace std klasse BaseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

Produksjon:

Forklaring:

I programmet over viser vi grunnleggende funksjon, med samme navn i avledet og basisklasse. Her blir objektet opprettet av den avledede klassen, så når vi ringer til displayet vises bare underordnet klasseobjekt.

Fortsetter med denne artikkelen om funksjonsoverbelastning og overstyring i C ++

Bestill for å utføre overstyring

Tenk på koden:

#include ved å bruke namespace std klasse BaseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

Produksjon:

Forklaring:

I programmet ovenfor viser vi grunnleggende funksjon, med samme navn i avledet og basisklasse. Her er den eneste forskjellen fra forrige program den. Vi lager objektet til barneklassen. Barneklasseobjektet får referanse til basisklasse. Dette kan også gjøres ved å bruke en annen metode,

Syntaks

hash-kart vs hash-bord
Parent_class_name :: function ()

I eksemplet ovenfor bruker vi det som,

BaseClass :: disp ()

Dette er en annen måte å overstyre.

Funksjon Overbelastning VS Funksjon Overstyring

Funksjon Overbelastning Funksjon Overstyring
Omfanget er det sammeOmfanget er annerledes
Signaturene må være forskjellige (f.eks. Parameter)Signaturene må være de samme
Antall muligheter for overbelastningBare en overordnet funksjon mulig
Kan forekomme uten arvDet oppstår hovedsakelig på grunn av arv

Dermed har vi kommet til en slutt på denne artikkelen om ‘Funksjon Overbelastning og overstyring i C ++’. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.