La surcharge de fonctions est une fonctionnalité de la programmation orientée objet dans laquelle deux ou plusieurs fonctions peuvent avoir le même nom mais des paramètres différents. Lorsqu'un nom de fonction est surchargé avec différentes tâches, on parle de surcharge de fonction. Dans la surcharge de fonctions, le nom de la fonction doit être le même et les arguments doivent être différents. La surcharge de fonctions peut être considérée comme un exemple de fonctionnalité de polymorphisme en C++.
Si plusieurs fonctions ayant le même nom mais que les paramètres des fonctions doivent être différents, on parle de surcharge de fonctions.
Si nous devons effectuer une seule opération et avoir le même nom des fonctions augmente la lisibilité du programme.
Supposons que vous deviez effectuer l'addition des nombres donnés mais qu'il puisse y avoir n'importe quel nombre d'arguments, si vous écrivez la fonction telle que a(int,int) pour deux paramètres et b(int,int,int) pour trois paramètres, alors elle Il peut être difficile pour vous de comprendre le comportement de la fonction car son nom diffère.
Les paramètres doivent respecter une ou plusieurs des conditions suivantes pour la surcharge de fonction :
java long en chaîne
- Les paramètres doivent avoir un type différent
ajouter (int a, int b)
ajouter (double a, double b)
Vous trouverez ci-dessous la mise en œuvre de la discussion ci-dessus :
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }> |
>
>Sortir
sum = 12 sum = 11.5>
- Les paramètres doivent avoir un numéro différent
ajouter (int a, int b)
ajouter (int a, int b, int c)
Vous trouverez ci-dessous la mise en œuvre de la discussion ci-dessus :
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }> |
>
>Sortir
sum = 12 sum = 15>
- Les paramètres doivent avoir une séquence de paramètres différente.
ajouter (int a, double b)
ajouter (double a, int b)
Vous trouverez ci-dessous la mise en œuvre de la discussion ci-dessus :
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }> |
>
>Sortir
si par Rudyard Kipling explication ligne par ligne
sum = 12.5 sum = 11.5>
Voici un exemple C++ simple pour démontrer la surcharge de fonctions.
RPC
#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }> |
>
>Sortir
Here is int 10 Here is float 10.1 Here is char* ten>
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }> |
>
>
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }> |
>
>
Comment fonctionne la surcharge de fonctions ?
- Correspondance exacte :- (Nom de la fonction et paramètre)
- Si un aucune correspondance exacte n'est trouvée : –
->Char, Unsigned char et short sont promus en int.
java point java
->Float est promu pour doubler
- Si aucune correspondance n'est trouvée :
->C++ essaie de trouver une correspondance via la conversion standard.
- AUTRE ERREUR
- Surcharge de fonction et type de retour
- Fonctions qui ne peuvent pas être surchargées en C++
- Surcharge de fonctions et mot-clé const
- Surcharge de fonctions vs remplacement de fonctions en C++
Articles récents sur la surcharge de fonctions en C++