În acest tutorial, vom afla despre supraîncărcarea funcției în C ++ cu exemple.
În C ++, două funcții pot avea același nume dacă numărul și / sau tipul argumentelor transmise sunt diferite.
Aceste funcții având același nume, dar argumente diferite sunt cunoscute sub numele de funcții supraîncărcate. De exemplu:
// same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )
Aici, toate cele 4 funcții sunt funcții supraîncărcate.
Observați că tipurile de returnare ale tuturor acestor 4 funcții nu sunt aceleași. Funcțiile supraîncărcate pot avea sau nu diferite tipuri de returnare, dar trebuie să aibă argumente diferite. De exemplu,
// Error code int test(int a) ( ) double test(int b)( )
Aici, ambele funcții au același nume, același tip și același număr de argumente. Prin urmare, compilatorul va arunca o eroare.
Supraîncărcarea funcției utilizând diferite tipuri de parametri
// 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; )
Ieșire
Valoare absolută de -5 = 5 Valoare absolută de 5,5 = 5,5

În acest program, supraîncărcăm absolute()
funcția. Pe baza tipului de parametru transmis în timpul apelului de funcție, se apelează funcția corespunzătoare.
Supraîncărcarea funcției utilizând un număr diferit de parametri
#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; )
Ieșire
Număr întreg: 5 Număr float: 5,5 Număr întreg: 5 și număr dublu: 5,5
Aici, display()
funcția este numită de trei ori cu argumente diferite. În funcție de numărul și tipul de argumente transmise, display()
se numește funcția corespunzătoare .

Tipul de returnare a tuturor acestor funcții este același, dar nu este cazul pentru supraîncărcarea funcției.
Notă: În C ++, multe funcții de bibliotecă standard sunt supraîncărcate. De exemplu, sqrt()
funcția poate lua double
, float
, int,
etc ca parametri. Acest lucru este posibil deoarece sqrt()
funcția este supraîncărcată în C ++.