Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Surcharge de fonctions C++ : Guide pratique

Surcharge de fonctions C++

Découvrez comment C++ vous permet de définir plusieurs fonctions avec le même nom mais des signatures différentes, illustré avec des exemples pratiques.

En C++, deux fonctions peuvent partager le même nom tant que leurs listes de paramètres diffèrent par le type, le nombre ou l'ordre. Ces variantes sont appelées fonctions surchargées.

Par exemple :

// Même nom, arguments différents
int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

Les quatre déclarations ci-dessus représentent un ensemble de surcharge valide. Notez que les types de retour sont sans importance pour la résolution de surcharge ; seule la liste de paramètres compte. Par exemple :

// Erreur de compilation : signatures identiques
int test(int a) { }
double test(int b) { }

Ici, les deux fonctions ont le même nom, même type et même nombre d'arguments, donc le compilateur rejette le doublon.


Exemple 1 : Surcharge avec différents types de paramètres

// Calculer la valeur absolue pour int et float
#include <iostream>
using namespace std;
// version float
float valeurAbsolue(float var) {
    return (var < 0.0f) ? -var : var;
}
// version int
int valeurAbsolue(int var) {
    return (var < 0) ? -var : var;
}
int main() {
    cout << "Valeur absolue de -5 = " << valeurAbsolue(-5) << endl;
    cout << "Valeur absolue de 5.5 = " << valeurAbsolue(5.5f) << endl;
    return 0;
}

Sortie

Valeur absolue de -5 = 5
Valeur absolue de 5.5 = 5.5

Ce programme surcharge valeurAbsolue() ; le compilateur sélectionne la version appropriée basée sur le type de l'argument.


Exemple 2 : Surcharge avec différents nombres de paramètres

#include <iostream>
using namespace std;
// Version deux paramètres
void afficher(int var1, double var2) {
    cout << "Entier : " << var1;
    cout << " & Double : " << var2 << endl;
}
// Version un paramètre double
void afficher(double var) {
    cout << "Double : " << var << endl;
}
// Version un paramètre int
void afficher(int var) {
    cout << "Entier : " << var << endl;
}
int main() {
    int a = 5;
    double b = 5.5;
    afficher(a);
    afficher(b);
    afficher(a, b);
    return 0;
}

Sortie

Entier : 5
Double : 5.5
Entier : 5 & Double : 5.5

L'appel à afficher() se résout à la surcharge correcte basée sur le nombre et le type d'arguments.


Note : Les fonctions de bibliothèque standard comme sqrt() sont fortement surchargées, acceptant int, float, double et plus, offrant de la flexibilité aux développeurs.

Langue C

  1. Maîtriser la surcharge de méthodes en C# : Concepts, exemples et bonnes pratiques
  2. Maîtriser la surcharge de constructeurs en C#
  3. Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
  4. Commentaires C++ : Bonnes pratiques pour un code lisible et maintenable
  5. Comment passer des tableaux aux fonctions en C++ : Guide pratique
  6. Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
  7. Comment passer des tableaux 1D et 2D aux fonctions en C – Guide pratique
  8. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  9. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques