C ++ funktsiooni ülekoormus (koos näidetega)

Selles õpetuses õpime näidete abil funktsiooni C ++ funktsioonide ülekoormamist.

Rakenduses C ++ võivad kahel funktsioonil olla sama nimi, kui edastatud argumentide arv ja / või tüüp on erinev.

Neid sama nime, kuid erinevate argumentidega funktsioone nimetatakse ülekoormatud funktsioonideks. Näiteks:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Siin on kõik 4 funktsiooni ülekoormatud funktsioonid.

Pange tähele, et kõigi nende 4 funktsiooni tagastustüübid pole ühesugused. Ülekoormatud funktsioonidel võivad olla erinevad tagastustüübid, kuid neil peavad olema erinevad argumendid. Näiteks,

 // Error code int test(int a) ( ) double test(int b)( )

Siin on mõlemal funktsioonil sama nimi, sama tüüp ja sama arv argumente. Seega viskab kompilaator vea.

Funktsiooni ülekoormamine erinevat tüüpi parameetrite abil

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Väljund

 Absoluutväärtus -5 = 5 Absoluutväärtus 5,5 = 5,5
Absoluutse () funktsiooni ülekoormuse töötamine

Selles programmis koormame absolute()funktsiooni üle. Funktsioonikõne ajal edastatud parameetri tüübi põhjal kutsutakse vastav funktsioon.

Funktsiooni ülekoormamine erineva arvu parameetrite abil

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Väljund

 Täisarv: 5 Ujuki number: 5,5 Täisarv: 5 ja topeltarv: 5,5

Siin display()kutsutakse funktsiooni kolm korda erinevate argumentidega. Sõltuvalt edastatud argumentide arvust ja tüübist display()kutsutakse vastav funktsioon.

Ekraani () funktsiooni ülekoormuse töötamine

Kõigi nende funktsioonide tagastustüüp on sama, kuid see ei pea olema funktsioonide ülekoormamise korral.

Märkus. Rakenduses C ++ on paljud tavapärased teegi funktsioonid ülekoormatud. Näiteks sqrt()funktsiooni võib kuluda double, float, int,jne parameetriga. See on võimalik, kuna sqrt()funktsioon on C ++ keeles üle koormatud.

Huvitavad Artiklid...