Surcharge de fonction C ++ (avec exemples)

Dans ce tutoriel, nous allons en apprendre davantage sur la surcharge de fonctions en C ++ avec des exemples.

En C ++, deux fonctions peuvent avoir le même nom si le nombre et / ou le type d'arguments passés est différent.

Ces fonctions ayant le même nom mais des arguments différents sont appelées fonctions surchargées. Par exemple:

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

Ici, les 4 fonctions sont des fonctions surchargées.

Notez que les types de retour de toutes ces 4 fonctions ne sont pas les mêmes. Les fonctions surchargées peuvent ou non avoir des types de retour différents, mais elles doivent avoir des arguments différents. Par exemple,

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

Ici, les deux fonctions ont le même nom, le même type et le même nombre d'arguments. Par conséquent, le compilateur lancera une erreur.

Surcharge de fonction à l'aide de différents types de paramètres

 // 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; )

Production

 Valeur absolue de -5 = 5 Valeur absolue de 5,5 = 5,5
Fonctionnement de la surcharge pour la fonction absolue ()

Dans ce programme, on surcharge la absolute()fonction. En fonction du type de paramètre passé lors de l'appel de fonction, la fonction correspondante est appelée.

Surcharge de fonction en utilisant un nombre différent de paramètres

 #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; )

Production

 Nombre entier: 5 Nombre flottant: 5,5 Nombre entier: 5 et nombre double: 5,5

Ici, la display()fonction est appelée trois fois avec des arguments différents. Selon le nombre et le type d'arguments passés, la display()fonction correspondante est appelée.

Fonctionnement de la surcharge pour la fonction display ()

Le type de retour de toutes ces fonctions est le même mais ce n'est pas nécessairement le cas pour la surcharge de fonction.

Remarque: en C ++, de nombreuses fonctions de bibliothèque standard sont surchargées. Par exemple, la sqrt()fonction peut prendre double, float, int,etc. en tant que paramètres. Cela est possible car la sqrt()fonction est surchargée en C ++.

Articles intéressants...