Supraîncărcarea funcției C ++ (cu exemple)

Î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
Funcționarea supraîncărcării pentru funcția absolute ()

Î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 .

Funcționarea supraîncărcării pentru funcția display ()

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 ++.

Articole interesante...