logo

Preobremenitev funkcij v C++

Preobremenitev funkcij je lastnost objektno orientiranega programiranja, kjer ima lahko dve ali več funkcij isto ime, vendar različne parametre. Ko je ime funkcije preobremenjeno z različnimi opravili, se to imenuje preobremenitev funkcije. Ime funkcije preobremenitve funkcije mora biti enako, argumenti pa različni. Preobremenitev funkcij lahko obravnavamo kot primer funkcije polimorfizma v C++.

Če ima več funkcij isto ime, vendar bi morali biti parametri funkcij različni, se to imenuje preobremenitev funkcij.
Če moramo izvesti samo eno operacijo in enako ime funkcij poveča berljivost programa.
Recimo, da morate izvesti seštevanje danih števil, vendar je lahko poljubno število argumentov, če napišete funkcijo, kot je a(int,int) za dva parametra in b(int,int,int) za tri parametre, potem je morda težko razumete vedenje funkcije, ker se njeno ime razlikuje.

Parametri morajo upoštevati enega ali več kot enega od naslednjih pogojev za preobremenitev funkcij:



dfs proti bfs
  • Parametri morajo imeti drugačno vrsto

dodaj (int a, int b)
seštej (dvojni a, dvojni b)

Spodaj je izvedba zgornje razprave:

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;> }>

>

>

Izhod

sum = 12 sum = 11.5>
  • Parametri morajo imeti drugačno številko

dodaj(int a, int b)
dodaj(int a, int b, int c)

Spodaj je izvedba zgornje razprave:

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;> }>

>

>

Izhod

sum = 12 sum = 15>
  • Parametri morajo imeti drugačno zaporedje parametrov.

add(int a, double b)
add(double a, int b)

Spodaj je izvedba zgornje razprave:

C++

strani, kot je coomeet




#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; }>

>

>

Izhod

sum = 12.5 sum = 11.5>

Sledi preprost primer C++ za prikaz preobremenitve funkcij.

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;> }>

>

>

Izhod

 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; }>

pretvori v niz
>

>

Kako deluje preobremenitev funkcij?

  • Natančno ujemanje :- (ime funkcije in parameter)
  • če a ni najdeno natančno ujemanje:

->Char, Unsigned char in short so napredovani v int.

->Float je povišan v podvojitev

  • Če ni ujemanja :

->C++ poskuša najti ujemanje s standardno pretvorbo.

  • DRUGE NAPAKE
  1. Preobremenitev funkcije in vrsta vrnitve
  2. Funkcije, ki jih v C++ ni mogoče preobremeniti
  3. Preobremenitev funkcij in ključna beseda const
  4. Preobremenitev funkcij proti preglasitvi funkcij v C++

Najnovejši članki o preobremenitvi funkcij v C++