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
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 ++ sortimisalgoritmFunktsiooni ülekoormamine VS Funktsiooni ülekandmine
Funktsioon Ülekoormus Funktsiooni alistamine Reguleerimisala on sama Reguleerimisala on erinev Allkirjad peavad erinema (nt: parameeter) Allkirjad peavad olema samad Võimalik ülekoormusfunktsioonide arv Võimalik on ainult üks ülekaalukas funktsioon Võib esineda ilma pärimiseta See 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.