Hoe functie-overbelasting en overschrijving in C ++ te implementeren?



In dit artikel wordt u kennis laten maken met overbelasting en overschrijven van functies in C ++, twee van de zeer belangrijke concepten van OOPS.

C ++ is een in de natuur en beschikt over verschillende functies. In deze sessie bespreken we hoe u functieoverbelasting en functieoverschrijving in C ++ kunt implementeren.

Volgende aanwijzingen komen in dit artikel aan bod,





Verderop met dit artikel over functie-overbelasting en overschrijving in C ++

Functie overbelasting



Functies met dezelfde naam maar verschillende parameters zijn toegestaan ​​in C ++ en worden aangeroepen Functie overbelasting . Het wordt ook wel compilatietijdpolymorfisme genoemd.

Bijvoorbeeld:

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

Hier zijn er drie functies met dezelfde naam, maar het enige dat ze onderscheidt, is dat de parameters voor elk verschillend zijn. Dus, afhankelijk van de doorgegeven parameters, wordt een functie aangeroepen.



Als de retourtypen van de functies verschillend zijn, wordt deze als ongeldig beschouwd.

Verderop met dit artikel over functie-overbelasting en overschrijving in C ++

Voorbeeldcode voor functie overbelasting

inclusief het gebruik van de naamruimte std class 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 een cout< 

Uitvoer

Output- Functie overbelasting en overschrijven in C ++ - Edureka

Uitleg

In het bovenstaande programma hebben we twee functies in de optieklasse. Beiden genaamd add. De ene heeft 2 parameters en de andere heeft 3 parameters.

In de hoofdfunctie maken we een object van klasse-toevoeging genaamd a. We noemen de add-functies met respectievelijk 2 en 3 parameters en de functies add worden aangeroepen en ze voeren optelling uit.

Dit is hoe de functie-overbelasting plaatsvindt.

Verderop met dit artikel over functie-overbelasting en overschrijving in C ++

Functie overschrijven

Wanneer een afgeleide klasse een functie heeft met dezelfde naam als een functie van de basisklasse, wordt deze aangeroepen Functie overschrijven. Beide functies moeten in beide klassen dezelfde parameters hebben.

Voorbeeldcode voor het overschrijven van functies

#include met behulp van naamruimte 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 } 

Uitgang:

Uitleg:

In het bovenstaande programma laten we de basisfunctie zien, met dezelfde naam in de afgeleide en basisklasse. Hier wordt het object gemaakt van de afgeleide klasse, dus wanneer we weergave aanroepen, wordt alleen het onderliggende klasseobject weergegeven.

Verderop met dit artikel over functie-overbelasting en overschrijving in C ++

Bestelling om overschrijving uit te voeren

Beschouw de code:

#include met behulp van naamruimte 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 } 

Uitgang:

c ++ sorteerarray

Uitleg:

In het bovenstaande programma laten we de basisfunctie zien, met dezelfde naam in afgeleide en basisklasse. Hier is het enige verschil met het vorige programma dat. We creëren het object van de kindklasse. Het kindklasseobject krijgt de referentie van de basisklasse. Dit kan ook worden gedaan door een andere methode te gebruiken,

Syntaxis

Parent_class_name :: function ()

In het bovenstaande voorbeeld gebruiken we het als,

BaseClass :: disp ()

Dit is een andere manier om te negeren.

Functie overbelasting versus functie overschrijven

Functie overbelasting Functie negeren
De reikwijdte is hetzelfdeDe reikwijdte is anders
Handtekeningen moeten verschillen (bijv .: parameter)Handtekeningen moeten hetzelfde zijn
Aantal overbelastingsfuncties mogelijkSlechts één overheersende functie mogelijk
Kan voorkomen zonder overervingHet komt voornamelijk voor als gevolg van overerving

Zo zijn we aan het einde gekomen van dit artikel over ‘Functieoverbelasting en overschrijving in C ++’. Als je meer wilt weten, bekijk dan de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.