Surcharge de fonctions C++
Surcharge de fonctions C++
Dans ce didacticiel, nous allons découvrir 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 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 renverra une erreur.
Exemple 1 :surcharge à l'aide de différents types de paramètres
// Program to compute absolute value
// Works for both int and float
#include <iostream>
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;
}
Sortie
Absolute value of -5 = 5 Absolute value of 5.5 = 5.5

Dans ce programme, on surcharge le absolute()
fonction. En fonction du type de paramètre passé lors de l'appel de la fonction, la fonction correspondante est appelée.
Exemple 2 :surcharge à l'aide d'un nombre différent de paramètres
#include <iostream>
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;
}
Sortie
Integer number: 5 Float number: 5.5 Integer number: 5 and double number: 5.5
Ici, le display()
La fonction est appelée trois fois avec des arguments différents. Selon le nombre et le type d'arguments passés, le display()
correspondant fonction est appelée.

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 fonctions.
Remarque : En C++, de nombreuses fonctions de bibliothèque standard sont surchargées. Par exemple, le sqrt()
la fonction peut prendre double
, float
, int,
etc. comme paramètres. Ceci est possible car le sqrt()
la fonction est surchargée en C++.
Langue C
- Surcharge de méthode C#
- Surcharge du constructeur C#
- Opérateurs C++
- Commentaires C++
- Passage d'un tableau à une fonction en programmation C++
- Fonction amie C++ et classes amies
- Passer des tableaux à une fonction en C
- Surcharge d'opérateur C++ avec des exemples
- Fonctions C++ avec exemples de programmes