Kako implementirati preopterećenje i poništavanje funkcija u C ++?



Ovaj će vas članak upoznati s Preopterećenjem funkcija i premošćivanjem u C ++-u, što su dva vrlo važna koncepta OOPS-a.

C ++ je u prirodi i može se pohvaliti raznim značajkama. U ovoj ćemo sesiji raspravljati o tome kako implementirati preopterećenje funkcije i nadjačavanje funkcije u C ++.

Slijedeće upute bit će obrađene u ovom članku,





Nastavljamo s ovim člankom o Preopterećenju i poništavanju funkcija u C ++-u

kako koristiti mysql radni stol

Preopterećenje funkcije



Funkcije koje imaju isto ime, ali različite parametre, dopuštene su u C ++ i pozivaju se Preopterećenje funkcije . Naziva se i polimorfizmom u vrijeme kompajliranja.

Na primjer:

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

Ovdje postoje tri funkcije s istim nazivom, ali jedino što ih razlikuje je to što su parametri različiti za svaku. Dakle, ovisno o prosljeđenim parametrima, poziva se funkcija.



Ako su povratni tipovi funkcija različiti, tada se smatra nevaljanim.

Nastavljamo s ovim člankom o Preopterećenju i poništavanju funkcija u C ++-u

Uzorak koda za funkciju preopterećenja

uključuju upotrebu prostora imena std klasa Dodatak {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 kuda< 

Izlaz

Izlaz - Preopterećenje i nadjačavanje funkcije u C ++ - Edureka

Obrazloženje

U gornjem programu imamo dvije funkcije u klasi sabiranja. Oba imenovana dodaju. Jedan ima 2 parametra, a drugi ima 3 parametra.

U glavnoj funkciji kreiramo objekt dodavanja klase pod nazivom a. Zovemo funkcije dodavanja s 2 i 3 parametra, a funkcije zovu se i izvršavaju zbrajanje.

Tako se događa preopterećenje funkcije.

Nastavljamo s ovim člankom o Preopterećenju i poništavanju funkcija u C ++-u

Nadjačavanje funkcije

Kada izvedena klasa ima funkciju s istim imenom kao funkcija osnovne klase, ona se naziva Nadjačavanje funkcije. Obje funkcije moraju imati iste parametre u obje klase.

što je tumač u javi

Uzorak koda za nadjačavanje funkcije

#include koristeći prostor imena 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 } 

Izlaz:

Obrazloženje:

U gornjem programu prikazujemo osnovnu funkciju s istim imenom u izvedenoj i osnovnoj klasi. Ovdje se objekt kreira iz izvedene klase, pa kad zovemo display prikazuje se samo objekt podređene klase.

Nastavljamo s ovim člankom o Preopterećenju i poništavanju funkcija u C ++-u

Nalog za izvršavanje nadjačavanja

Razmotrite kod:

#include koristeći prostor imena 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 } 

Izlaz:

Obrazloženje:

U gornjem programu prikazujemo osnovnu funkciju s istim imenom u izvedenoj i osnovnoj klasi. Ovdje je jedina razlika u odnosu na prethodni program u tome. Stvaramo objekt klase child. Objekt podređene klase dobiva referencu osnovne klase. To se također može učiniti drugom metodom,

Sintaksa

Ime_razreda_ roditelja :: funkcija ()

U gornjem primjeru koristimo ga kao,

razlika između bigdata i hadoopa
BaseClass :: disp ()

Ovo je još jedan način nadjačavanja.

Preopterećenje funkcije VS Nadjačavanje funkcije

Preopterećenje funkcije Nadjačavanje funkcije
Opseg je istiOpseg je drugačiji
Potpisi se moraju razlikovati (npr: parametar)Potpisi moraju biti isti
Broj mogućih funkcija preopterećenjaMoguća samo jedna nadređena funkcija
Može se dogoditi bez nasljeđivanjaUglavnom se javlja zbog nasljedstva

Tako smo došli do kraja ovog članka o 'Preopterećenju i poništavanju funkcija u C ++'. Ako želite saznati više, pogledajte Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.