Différence entre la surcharge de fonctions et la redéfinition de fonctions en C ++

La surcharge et la redéfinition de fonctions sont des exemples de polymorphisme, mais elles sont complètement différentes. Avant de discuter de la différence entre les deux, commençons par en parler un peu.
 
 

La surcharge de fonctions

Il fournit plusieurs définitions du fonction en modifiant la signature, c’est-à-dire en changeant le nombre de paramètres, en modifiant le type de données des paramètres, le type de retour ne jouant aucun rôle.

Exemple de signatures d’une fonction surchargée:

void racine_carre(int a);
void racine_carre(int a, int b);

Exemple de surcharge:

#include <iostream>

using namespace std;

//La surcharge de fonctions
float multiplication(int, int);
float multiplication(float, float);
float multiplication(int, float);
float multiplication(float, int);

int main(){
   //Ceci appellera la deuxième fonction
   cout<<multiplication(12.7f, 2.7f)<<endl;

   //Ceci appellera la première fonction
   cout<<multiplication(100, 50)<<endl;

   //Ceci appellera la troisième fonction
   cout<<multiplication(50, 10.2f)<<endl;

   //Ceci appellera la quatrième fonction
   cout<<multiplication(10.8f, 20)<<endl;

   return 0;
}

float multiplication(int a, int b){
   return a+b;
}
float multiplication(float a, float b){
   return a+b;
}
float multiplication(int a, float b){
   return a+b;
}
float multiplication(float a, int b){
   return a+b;
}

La sortie:

15.4
150 
60.2
30.8
Différence entre exit 0 et exit 1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *