Kuidas rakendada funktsiooni ülekoormamist ja alistamist rakenduses C ++?

See artikkel tutvustab teile funktsiooni ülekoormamist ja alistamist C ++ -s, mis on kaks OOPS-i väga olulist mõistet.

C ++ on looduses ja see uhkeldab erinevate funktsioonidega. Selles sessioonis arutame, kuidas rakendada funktsioonide ülekoormamine ja funktsioonide alistamine C ++ versioonis.



Järgmisi näpunäiteid käsitletakse selles artiklis,

Selle artikliga edasi liikudes funktsioonide ülekoormamine ja ülekandmine C ++ versioonis

Funktsioon Ülekoormus



Funktsioonid, millel on sama nimi, kuid erinevad parameetrid, on C ++ - s lubatud ja neid kutsutakse Funktsioon Ülekoormus . Seda nimetatakse ka kompileerimisaja polümorfismiks.

Näiteks:

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

Siin on kolm samanimelist funktsiooni, kuid ainus, mis neid eristab, on see, et parameetrid on kummalgi erinevad. Niisiis, sõltuvalt edastatud parameetritest, kutsutakse funktsiooni.



Kui funktsioonide tagastustüübid on erinevad, loetakse see kehtetuks.

Selle artikliga edasi liikudes funktsioonide ülekoormamine ja ülekandmine C ++ versioonis

Näidiskood funktsiooni ülelaadimiseks

kaasata nimeruumi kasutamine std klass Lisa {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {lisamine cout< 

Väljund

Väljund - funktsiooni ülekoormamine ja ülekandmine C ++ - Edurekas

Selgitus

Ülalolevas programmis on meil liitklassis kaks funktsiooni. Mõlemad nimed lisavad. Ühel on 2 parameetrit ja teisel on 3 parameetrit.

Põhifunktsioonis loome klassi liitmise objekti nimega a. Kutsume lisafunktsioone vastavalt 2 ja 3 parameetriga ning kutsutakse funktsioonid add ja nad täidavad liitmist.

Nii toimub funktsiooni ülekoormamine.

Selle artikliga edasi liikudes funktsioonide ülekoormamine ja ülekandmine C ++ versioonis

Funktsiooni ülimuslikkus

Kui tuletatud klassil on funktsioon, millel on sama nimi kui põhiklassi funktsioonil, nimetatakse seda Funktsiooni ülimuslikkus. Mõlemal funktsioonil peavad mõlemas klassis olema samad parameetrid.

Funktsiooni alistamise näidiskood

#include kasutades nimeruumi standardklass 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 } 

Väljund:

Selgitus:

Ülalolevas programmis näitame põhifunktsiooni, tuletatud ja põhiklassis sama nimega. Siin on objekt loodud tuletatud klassist, nii et kui me kutsume kuvamist, kuvatakse ainult alamklassi objekt.

Selle artikliga edasi liikudes funktsioonide ülekoormamine ja ülekandmine C ++ versioonis

Ülekande sooritamise käsk

Mõelge koodile:

#include kasutades nimeruumi standardklass 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 } 

Väljund:

Selgitus:

Ülalolevas programmis näitame tuletatud ja põhiklassis sama nimega põhifunktsiooni. Siin on ainus erinevus eelmisest programmist see. Loome lasteklassi objekti. Lapseklassi objektile antakse baasklassi viide. Seda saab teha ka mõne muu meetodi abil,

Süntaks

Parent_class_name :: function ()

Ülaltoodud näites kasutame seda kui

BaseClass :: disp ()

See on veel üks võimalus ületada.

c ++ sortimisalgoritm

Funktsiooni ülekoormamine VS Funktsiooni ülekandmine

Funktsioon Ülekoormus Funktsiooni alistamine
Reguleerimisala on samaReguleerimisala on erinev
Allkirjad peavad erinema (nt: parameeter)Allkirjad peavad olema samad
Võimalik ülekoormusfunktsioonide arvVõimalik on ainult üks ülekaalukas funktsioon
Võib esineda ilma pärimisetaSee tekib peamiselt pärimise tõttu

Seega oleme jõudnud selle artikli lõppu, mis käsitleb funktsiooni ülekoormamist ja alistamist C ++ -s. Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebiõppe ettevõte. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java põhiliste kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.