Funkcijų perkrovimas yra objektinio programavimo ypatybė, kai dvi ar daugiau funkcijų gali turėti tą patį pavadinimą, bet skirtingus parametrus. Kai funkcijos pavadinimas yra perkrautas skirtingomis užduotimis, jis vadinamas funkcijos perkrovimu. Funkcijos perkrovimas Funkcijos pavadinimas turi būti toks pat, o argumentai – skirtingi. Funkcijų perkrovimas gali būti laikomas C++ polimorfizmo ypatybės pavyzdžiu.
Jei kelios funkcijos turi tą patį pavadinimą, bet funkcijų parametrai turėtų skirtis, tai vadinama funkcijų perkrovimu.
Jei turime atlikti tik vieną operaciją ir turint tą patį funkcijų pavadinimą, padidėja programos skaitomumas.
Tarkime, kad turite atlikti nurodytų skaičių pridėjimą, bet argumentų gali būti bet koks skaičius, jei parašysite funkciją, pvz., a(int,int) dviem parametrams ir b(int,int,int) trims parametrams, tada ji gali būti sunku suprasti funkcijos veikimą, nes skiriasi jos pavadinimas.
Parametrai turi atitikti vieną ar daugiau nei vieną iš šių funkcijų perkrovos sąlygų:
Salman Khan amžius
- Parametrai turi būti kitokio tipo
pridėti (a, in b)
pridėti (dvigubai a, dvigubai b)
Žemiau pateikiamas aukščiau pateiktos diskusijos įgyvendinimas:
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;> }> |
>
>Išvestis
sum = 12 sum = 11.5>
- Parametrai turi turėti kitą skaičių
pridėti (a, in b)
pridėti (int a, int b, int c)
Žemiau pateikiamas aukščiau pateiktos diskusijos įgyvendinimas:
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;> }> |
>
>Išvestis
sum = 12 sum = 15>
- Parametrai turi turėti skirtingą parametrų seką.
pridėti (a, double b)
pridėti (double a, int b)
Žemiau pateikiamas aukščiau pateiktos diskusijos įgyvendinimas:
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; }> |
>
prižiūrimas mašininis mokymasis
>Išvestis
sum = 12.5 sum = 11.5>
Toliau pateikiamas paprastas C++ pavyzdys, rodantis funkcijų perkrovimą.
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;> }> |
>
>Išvestis
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++
ką reiškia google
#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; }> |
>
>
Kaip veikia funkcijų perkrova?
- Tikslus atitikimas :- (Funkcijos pavadinimas ir parametras)
- Jeigu a nerasta tiksli atitiktis: –
->Char, Unsigned char ir short yra paaukštinti į int.
->Plūdė paaukštinama į dvigubą
- Jei atitikmens nerasta :
-> C++ bando rasti atitikmenį per standartinę konversiją.
- KITA KLAIDA
- Funkcijų perkrovimas ir grąžinimo tipas
- Funkcijos, kurių negalima perkrauti C++
- Funkcijos perkrovimas ir const raktinis žodis
- Funkcijų perkrovimas prieš funkcijų nepaisymą C++
Naujausi straipsniai apie funkcijų perkrovimą C++