Hur man implementerar överbelastning av funktioner och överstyrning i C ++?



Den här artikeln presenterar dig för funktionsöverbelastning och överstyrning i C ++ som är två av de mycket viktiga begreppen i OOPS.

C ++ är en i naturen och den har olika funktioner. I den här sessionen skulle vi diskutera hur man implementerar funktionsöverbelastning och funktionsöverstyrning i C ++.

Följande tips kommer att behandlas i den här artikeln,





Fortsätter med den här artikeln om funktionsöverbelastning och åsidosättande i C ++

Funktion Överbelastning



Funktioner med samma namn men olika parametrar är tillåtna i C ++ och kallas Funktion Överbelastning . Det kallas också polymorfism för sammanställningstid.

Till exempel:

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

Här finns det tre funktioner med samma namn men det enda som skiljer dem åt är att parametrarna är olika på var och en. Så, beroende på vilka parametrar som skickas, kallas en funktion.



Om returtyperna för funktionerna är olika anses de vara ogiltiga.

Gå vidare med den här artikeln om funktionsöverbelastning och åsidosättande i C ++

vad gör skannern i java

Exempelkod för funktion överbelastning

inkludera med hjälp av namnutrymme std klass Addition {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 överbelastning och åsidosättande i C ++ - Edureka

Salesforce utvecklarhandledning för nybörjare

Förklaring

I programmet ovan har vi två funktioner i tilläggsklassen. Båda namngivna add. En har två parametrar och den andra har 3 parametrar.

I huvudfunktionen skapar vi ett objekt för klasstillägg som kallas a. Vi kallar add-funktionerna med 2 respektive 3 parametrar och funktionerna add kallas och de utför addition.

Så här sker överbelastningen av funktionen.

Gå vidare med den här artikeln om funktionsöverbelastning och åsidosättande i C ++

Funktion Överstyrning

När en härledd klass har en funktion med samma namn som en funktion av basklassen kallas den Funktion Överstyrning. Båda funktionerna måste ha samma parametrar i båda klasserna.

Exempelkod för åsidosättande av funktioner

#include using namespace std class 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:

Förklaring:

I programmet ovan visar vi grundläggande funktion, med samma namn i härledd och basklass. Här skapas objektet från den härledda klassen, så när vi ringer till displayen visas bara det underordnade klassobjektet.

Gå vidare med den här artikeln om funktionsöverbelastning och åsidosättande i C ++

Beställ att utföra åsidosättande

Tänk på koden:

#include using namespace std class 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:

Förklaring:

I programmet ovan visar vi grundläggande funktion, med samma namn i härledd och basklass. Här är den enda skillnaden från föregående program den. Vi skapar föremålet för barnklassen. Barnklassobjektet ges referens till basklass. Detta kan också göras med en annan metod,

Syntax

Parent_class_name :: function ()

I exemplet ovan använder vi det som,

statisk medlemsfunktion c ++
BaseClass :: disp ()

Detta är ett annat sätt att åsidosätta.

Funktion Överbelastning VS Funktion Överstyrning

Funktionsöverbelastning Åsidosättande av funktion
Omfattningen är densammaOmfattningen är annorlunda
Signaturerna måste skilja sig (ex: parameter)Underskrifterna måste vara desamma
Antal överbelastningsfunktioner möjligaEndast en övergripande funktion möjlig
Kan förekomma utan arvDet uppstår främst på grund av arv

Således har vi kommit till slutet av denna artikel om ”Funktionsöverbelastning och överstyrning i C ++”. Om du vill veta mer, kolla in av Edureka, ett pålitligt inlärningsföretag online. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.