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
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 ++ sorteerarrayUitleg:
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 hetzelfde De reikwijdte is anders Handtekeningen moeten verschillen (bijv .: parameter) Handtekeningen moeten hetzelfde zijn Aantal overbelastingsfuncties mogelijk Slechts één overheersende functie mogelijk Kan voorkomen zonder overerving Het 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.