Kako v C ++ izvesti preobremenitev in razveljavitev funkcij?



Ta članek vas bo seznanil s preobremenitvijo in razveljavitvijo funkcij v jeziku C ++, ki sta dva zelo pomembna koncepta OOPS.

C ++ je v naravi in ​​se ponaša z različnimi lastnostmi. Na tej seji bi razpravljali o izvedbi preobremenitve funkcij in preglasitve funkcij v jeziku C ++.

V tem članku bodo zajeti naslednji napotki:





Nadaljujemo s tem člankom o preobremenitvi in ​​razveljavitvi funkcij v jeziku C ++

Preobremenitev funkcije



Funkcije z istim imenom, vendar različnimi parametri, so v C ++ dovoljene in se pokličejo Preobremenitev funkcije . Imenuje se tudi polimorfizem v času prevajanja.

Na primer:

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

Tu obstajajo tri funkcije z istim imenom, vendar jih razlikuje le to, da so parametri pri vsaki različni. Torej, odvisno od posredovanih parametrov se pokliče funkcija.



Če so vrnjeni tipi funkcij različni, se šteje za neveljavne.

Nadaljujemo s tem člankom o preobremenitvi in ​​razveljavitvi funkcij v jeziku C ++

Vzorčna koda za delovanje pri nalaganju

vključi uporabo imenskega prostora std razred Dodatek {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 cout< 

Izhod

Izhod - Preobremenitev in razveljavitev funkcije v C ++ - Edureka

Pojasnilo

V zgornjem programu imamo dve funkciji v razredu seštevanja. Oba imenovana dodajata. Eden ima 2 parametra, drugi pa 3 parametre.

V glavni funkciji ustvarimo objekt dodajanja razredov, imenovan a. Kličemo funkcije add z 2 oziroma 3 parametroma, funkcije add pa se pokličejo in izvedejo seštevanje.

Tako poteka preobremenitev funkcije.

Nadaljujemo s tem člankom o preobremenitvi in ​​razveljavitvi funkcij v jeziku C ++

Preglasitev funkcije

Ko ima izpeljani razred funkcijo z enakim imenom kot funkcija osnovnega razreda, se ta pokliče Preglasitev funkcije. Obe funkciji morata imeti v obeh razredih enake parametre.

Vzorčna koda za razveljavitev funkcije

#include z uporabo imenskega prostora std razred 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 } 

Izhod:

kaj je razvijalec blokov

Pojasnilo:

V zgornjem programu prikazujemo osnovno funkcijo z istim imenom v izpeljanem in osnovnem razredu. Tu je objekt ustvarjen iz izvedenega razreda, tako da je, ko pokličemo display, prikazan samo predmet podrejenega razreda.

Nadaljujemo s tem člankom o preobremenitvi in ​​razveljavitvi funkcij v jeziku C ++

Naročilo za izvedbo razveljavitve

Upoštevajte kodo:

#include z uporabo imenskega prostora std razred 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 } 

Izhod:

Pojasnilo:

V zgornjem programu prikazujemo osnovno funkcijo z istim imenom v izpeljanem in osnovnem razredu. Tu je edina razlika od prejšnjega programa ta. Ustvarimo objekt otroškega razreda. Predmet podrejenega razreda dobi referenco osnovnega razreda. To lahko storite tudi z drugo metodo,

Sintaksa

Ime_razreda_ starša :: funkcija ()

V zgornjem primeru ga uporabljamo kot,

BaseClass :: disp ()

To je še en način razveljavitve.

Preobremenitev funkcije VS Preglasitev funkcije

Preobremenitev funkcije Preglasitev funkcije
Obseg je enakObseg je drugačen
Podpisi se morajo razlikovati (npr. Parameter)Podpisi morajo biti enaki
Število možnih funkcij preobremenitveMožna samo ena preglasna funkcija
Lahko se zgodi brez dedovanjaPojavi se predvsem zaradi dedovanja

Tako smo prišli do konca tega članka o 'Preobremenitvi in ​​preglasitvi funkcij v C ++'. Če želite izvedeti več, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.