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
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-bordParent_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 samme Omfanget er annerledes Signaturene må være forskjellige (f.eks. Parameter) Signaturene må være de samme Antall muligheter for overbelastning Bare en overordnet funksjon mulig Kan forekomme uten arv Det 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.