A C ++ egy a természetben, és különféle tulajdonságokkal büszkélkedhet. Ebben a munkamenetben megvitatnánk, hogyan lehet megvalósítani a függvények túlterhelését és a funkció felülírását a C ++ nyelven.
A következő mutatókkal foglalkozunk ebben a cikkben,
Folytatás ezzel a cikkel: Funkciók túlterhelése és felülbírálása C ++ nyelven
Funkció Túlterhelés
Azonos nevű, de eltérő paraméterű funkciók megengedettek a C ++ - ban, és meghívásra kerülnek Funkció Túlterhelés . Compile-time polimorfizmusnak is nevezik.
Például:
összeg (int a, float b) összeg (int a, int b) összeg (int a, int b, int c)
Itt három azonos nevű függvény létezik, de az egyetlen dolog különbözteti meg őket, hogy a paraméterek mindegyiknél eltérőek. Tehát az átadott paraméterektől függően egy függvényt hívunk meg.
Ha a függvények visszatérési típusai eltérnek, akkor érvénytelennek tekintjük.
Folytatás ezzel a cikkel: Funkciók túlterhelése és felülbírálása C ++ nyelven
Minta kód a funkció túlterheléséhez
tartalmazza a névtér használatát std osztály Kiegészítés {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Összeadás egy cout<Kimenet
Magyarázat
A fenti programban két függvényünk van az összeadás osztályban. Mindkét nevezett hozzá. Az egyiknek 2, a másiknak 3 paramétere van.
mit csinál a szkenner java-banA fő függvényben létrehozunk egy, az osztálynak nevezett objektumot. Hívjuk az add függvényeket 2, illetve 3 paraméterrel, és az add függvényeket meghívjuk, és elvégzik az összeadást.
Így történik a függvény túlterhelése.
Folytatás ezzel a cikkel: Funkciók túlterhelése és felülbírálása C ++ nyelven
Funkció felülírása
Ha egy származtatott osztálynak van egy függvénye, amelynek neve megegyezik az alaposztály függvényével, akkor meghívjuk Funkció felülírása. Mindkét függvénynek ugyanazoknak a paramétereknek kell lenniük mindkét osztályban.
Minta kód a funkció felülírására
#include névtér használatával std osztály 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 }Kimenet:
Magyarázat:
A fenti programban megmutatjuk az alapfunkciókat, ugyanazzal a névvel a származtatott és az alaposztályban. Itt az objektum a származtatott osztályból jön létre, így amikor a kijelzőt hívjuk, csak a gyermek osztály objektum jelenik meg.
Folytatás ezzel a cikkel: Funkciók túlterhelése és felülbírálása C ++ nyelven
Rendelés az elsőbbség végrehajtására
Vegye figyelembe a kódot:
#include névtér használatával std osztály 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 }Kimenet:
Magyarázat:
A fenti programban megmutatjuk az alapfunkciókat, azonos névvel a származtatott és az alaposztályban. Itt az egyetlen különbség az előző programhoz képest az. Létrehozzuk a gyermekosztály tárgyát. A gyermekosztály objektum megkapja az alaposztály hivatkozását. Ez megtehető egy másik módszer alkalmazásával is,
Szintaxis
Szülő_osztály_neve :: függvény ()A fenti példában ezt használjuk,
BaseClass :: disp ()Ez az felülírás másik módja.
Funkció túlterhelése VS Funkció felülírása
hozzon létre egy tömb objektumot java
Funkció Túlterhelés Funkció felülbírálása A hatókör ugyanaz A hatály más Az aláírásoknak különbözniük kell (pl .: paraméter) Az aláírásoknak azonosaknak kell lenniük Lehetséges túlterhelési funkciók száma Csak egy felülbíráló funkció lehetséges Öröklés nélkül is előfordulhat Főleg az öröklés miatt következik be Így a „Funkciók túlterhelése és felülbírálása a C ++ -on” című cikkünk végéhez értünk. Ha többet szeretne megtudni, nézze meg a Edureka, egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.
Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.