Sådan implementeres overbelastning af funktioner og overstyring i C ++?

Denne artikel introducerer dig til funktionsoverbelastning og overstyring i C ++, som er to af de meget vigtige begreber i OOPS.

C ++ er en i naturen, og den kan prale af forskellige funktioner. I denne session ville vi diskutere, hvordan man implementerer funktionsoverbelastning og funktionsoverstyring i C ++.



Følgende punkter vil blive dækket i denne artikel,



Fortsætter med denne artikel om funktionsoverbelastning og tilsidesættelse i C ++

Funktion Overbelastning



Funktioner med samme navn men forskellige parametre er tilladt i C ++ og kaldes Funktion Overbelastning . Det kaldes også kompil-time polymorfisme.

For eksempel:

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

Her er der tre funktioner med samme navn, men det eneste der adskiller dem er, at parametrene er forskellige på hver. Så afhængigt af de parametre, der sendes, kaldes en funktion.



Hvis returneringstyperne for funktionerne er forskellige, betragtes den som ugyldig.

Fortsætter med denne artikel om funktionsoverbelastning og tilsidesættelse i C ++

Prøvekode til funktion overbelastning

inkluderer brug af namespace std klasse Tilføjelse {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Addition en cout< 

Produktion

Output- Funktion overbelastning og tilsidesættelse i C ++ - Edureka

Forklaring

I programmet ovenfor har vi to funktioner i tilføjelsesklassen. Begge navngivne tilføj. Den ene har 2 parametre og den anden har 3 parametre.

I hovedfunktionen opretter vi et objekt til klassetilføjelse kaldet a. Vi kalder tilføjelsesfunktionerne med henholdsvis 2 og 3 parametre, og funktionerne tilføj kaldes og de udfører tilføjelse.

Sådan finder funktionens overbelastning sted.

Fortsætter med denne artikel om funktionsoverbelastning og tilsidesættelse i C ++

Overstyring af funktion

Når en afledt klasse har en funktion med samme navn som en funktion af baseklassen, kaldes den Overstyring af funktion. Begge funktioner skal have de samme parametre i begge klasser.

Prøvekode til tilsidesættelse af funktion

#include ved hjælp af 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 } 

Produktion:

Forklaring:

I ovenstående program viser vi grundlæggende funktion med samme navn i afledt og basisklasse. Her oprettes objektet af den afledte klasse, så når vi kalder display, vises kun underordnet klasse-objekt.

Fortsætter med denne artikel om funktionsoverbelastning og tilsidesættelse i C ++

Bestil at udføre tilsidesættelse

Overvej koden:

#include ved hjælp af 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 } 

Produktion:

Forklaring:

I ovenstående program viser vi grundlæggende funktion med samme navn i afledt og basisklasse. Her er den eneste forskel fra det forrige program den. Vi skaber objektet i barneklassen. Underordnet klasseobjekt får referencen til baseklassen. Dette kan også gøres ved hjælp af en anden metode,

Syntaks

Parent_class_name :: function ()

I ovenstående eksempel bruger vi det som,

lagringsklasser i c ++
BaseClass :: disp ()

Dette er en anden måde at tilsidesætte.

Funktion Overbelastning VS Funktion Overstyring

Funktion Overbelastning Tilsidesættelse af funktion
Omfanget er det sammeOmfanget er anderledes
Underskrifterne skal være forskellige (f.eks. Parameter)Underskrifterne skal være ens
Antal mulige overbelastningsfunktionerKun en overordnet funktion mulig
Kan forekomme uden arvDet sker hovedsageligt på grund af arv

Således er vi nået til slutningen af ​​denne artikel om 'Funktionsoverbelastning og overstyring i C ++'. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et pålideligt online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.