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
- Preobremenitev funkcije in vrsta vrnitve
- Funkcije, ki jih v C++ ni mogoče preobremeniti
- Preobremenitev funkcij in ključna beseda const
- Preobremenitev funkcij proti preglasitvi funkcij v C++
Najnovejši članki o preobremenitvi funkcij v C++