Funkciju pārslodze programmā C++

Funkciju pārslodze ir objektorientētas programmēšanas iezīme, kurā divām vai vairākām funkcijām var būt vienāds nosaukums, bet atšķirīgi parametri. Ja funkcijas nosaukums ir pārslogots ar dažādiem darbiem, to sauc par funkcijas pārslodzi. Funkcijas pārslodzes sadaļā Funkcijas nosaukumam jābūt vienādam un argumentiem ir jābūt atšķirīgiem. Funkciju pārslodzi var uzskatīt par C++ polimorfisma pazīmes piemēru.

Ja vairākām funkcijām ir vienāds nosaukums, bet funkciju parametriem jābūt atšķirīgiem, to sauc par funkciju pārslodzi.
Ja mums ir jāveic tikai viena operācija un ar vienādu funkciju nosaukumu tiek palielināta programmas lasāmība.
Pieņemsim, ka jums ir jāveic doto skaitļu saskaitīšana, bet var būt jebkurš argumentu skaits, ja ierakstāt tādu funkciju kā a(int,int) diviem parametriem un b(int,int,int) trim parametriem, tad tā var būt grūti saprast funkcijas darbību, jo tās nosaukums atšķiras.

Funkcijas pārslodzes parametriem ir jāatbilst vienam vai vairākiem no šiem nosacījumiem:

  • Parametriem jābūt cita veida

pievienot(int a, int b)
pievienot (dubultā a, dubultā b)

Tālāk ir sniegta iepriekš minētās diskusijas īstenošana:

C++




#include> using> namespace> std;> void> add(> int> a,> int> b)> {> > cout < <> 'sum = '> < < (a + b);> }> void> add(> double> a,> double> b)> {> > cout < < endl < <> 'sum = '> < < (a + b);> }> // Driver code> int> main()> {> > add(10, 2);> > add(5.3, 6.2);> > return> 0;> }>

Izvade

sum = 12 sum = 11.5 
  • Parametriem ir jābūt citam numuram

pievienot(int a, int b)
pievienot(int a, int b, int c)

Tālāk ir sniegta iepriekš minētās diskusijas īstenošana:

C++




#include> using> namespace> std;> void> add(> int> a,> int> b)> {> > cout < <> 'sum = '> < < (a + b);> }> void> add(> int> a,> int> b,> int> c)> {> > cout < < endl < <> 'sum = '> < < (a + b + c);> }> // Driver code> int> main()> {> > add(10, 2);> > add(5, 6, 4);> > return> 0;> }>

Izvade

sum = 12 sum = 15 
  • Parametriem jābūt atšķirīgai parametru secībai.

pievienot (int a, dubultā b)
pievienot(double a, int b)

Tālāk ir sniegta iepriekš minētās diskusijas īstenošana:

C++




#include> using> namespace> std;> void> add(> int> a,> double> b)> {> > cout < <> 'sum = '> < <(a+b);> }> void> add(> double> a,> int> b)> {> > cout <'sum = ' < <(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }>

Izvade

sum = 12.5 sum = 11.5 

Tālāk ir sniegts vienkāršs C++ piemērs, lai parādītu funkciju pārslodzi.

CPP




#include> using> namespace> std;> void> print(> int> i) {> > cout < <> ' Here is int '> < < i < < endl;> }> void> print(> double> f) {> > cout < <> ' Here is float '> < < f < < endl;> }> void> print(> char> const> *c) {> > cout < <> ' Here is char* '> < < c < < endl;> }> int> main() {> > print(10);> > print(10.10);> > print(> 'ten'> );> > return> 0;> }>

Izvade

 Here is int 10 Here is float 10.1 Here is char* ten 

C++




#include> using> namespace> std;> void> add(> int> a,> int> b)> {> > cout < <> 'sum ='> < <(a+b);> }> void> add(> int> a,> int> b,> int> c)> {> > cout <'sum =' < <(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }>

C++




#include> using> namespace> std;> void> add(> int> a,> double> b)> {> > cout < <> 'sum ='> < <(a+b);> }> void> add(> double> a,> int> b)> {> > cout <'sum =' < <(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }>

Kā darbojas funkciju pārslodze?

  • Precīza sakritība :- (Funkcijas nosaukums un parametrs)
  • Ja a nav atrasta precīza atbilstība:

->Char, Unsigned char un short tiek paaugstināti par int.

->Pludiņš tiek paaugstināts uz dubulto

  • Ja atbilstība netiek atrasta :

-> C++ mēģina atrast atbilstību, izmantojot standarta konvertēšanu.

  • CITA KĻŪDA
  1. Funkciju pārslodze un atgriešanas veids
  2. Funkcijas, kuras nevar pārslogot C++
  3. Funkciju pārslodze un const atslēgvārds
  4. Funkciju pārslodze pret funkciju ignorēšanu programmā C++

Jaunākie raksti par funkciju pārslodzi programmā C++