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
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 samme Omfanget er anderledes Underskrifterne skal være forskellige (f.eks. Parameter) Underskrifterne skal være ens Antal mulige overbelastningsfunktioner Kun en overordnet funktion mulig Kan forekomme uden arv Det 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.