Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/01/2020, à 19:56

chris7522

Surcharge fonction C++

Bonjour a toutes et a tous ,

Dabord le code :

#include <iostream>
using namespace std;

int addition(int a , int b);
double addition(double a , double b);

int main()
{
 int nombre1=0;
 int nombre2=0;

 cout << "Entrez le 1 er nombre pour l'addition :" << endl;
 cin >>nombre1; cin.ignore(); 
 cout << "Entrez le 2eme nombre pour l'addition :" << endl;
 cin >>nombre2; cin.ignore(); 
 cout << addition(nombre1,nombre2)<< endl;
 
 return 0;
}

int addition(int a , int b)
{
 return a+b;
}
double addition(double a , double b)
{
 return a+b;
}

Lorsque je renseigne mes 2 entiers , le resultat est correct . Lorsque je rentre un 1er double par exemple  : 2.4 , pas possible de rentrer le 2 eme , il me fait l'addition de 2+4 . Qu'aurai je du faire ?
Merci de votre aide .

Hors ligne

#2 Le 07/01/2020, à 20:10

NicoApi73

Re : Surcharge fonction C++

Bonjour,

nombre1 et nombre2 sont déclarés comme des entiers dans la fonction main. Donc quand tu tapes 2.4, le premier cin cherche un entier et trouve 2, ignore le . et le second cin capture le 4...

Hors ligne

#3 Le 07/01/2020, à 20:53

chris7522

Re : Surcharge fonction C++

Merci de ta reponse . Si je met auto , ca change quelque chose ?

Hors ligne

#4 Le 07/01/2020, à 21:55

NicoApi73

Re : Surcharge fonction C++

non, auto n'est pas un type universel

Hors ligne

#5 Le 07/01/2020, à 22:44

chris7522

Re : Surcharge fonction C++

ok . Donc pas de surchage de fonction possible dans ce cas ?:)

Hors ligne

#6 Le 08/01/2020, à 07:55

NicoApi73

Re : Surcharge fonction C++

Ce n'est pas la surcharge qui est en cause dans ce cas, mais la saisie des informations smile

Hors ligne

#7 Le 09/01/2020, à 18:44

chris7522

Re : Surcharge fonction C++

Je te remercie smile

Hors ligne

#8 Le 09/01/2020, à 18:47

lann

Re : Surcharge fonction C++

Il faut faire des template

Hors ligne

#9 Le 09/01/2020, à 19:00

Nuliel

Re : Surcharge fonction C++

Les templates c'est pas que pour les fonctions?

Hors ligne

#10 Le 09/01/2020, à 20:02

NicoApi73

Re : Surcharge fonction C++

Bonjour,

Les templates vont permettre d'éviter d'écrire 2 fois la fonction. Là le problème c'est que cin >> nombre1; ça capture un int puisque nombre1 est déclaré comme ça.

Les templates existent aussi pour les classes.

Pour moi, dans l'exemple ci-dessus, il faut déterminer à la saisie si c'est un int ou un double, puis appeler la fonction addition (soit surchargée, soit décrite sous forme de template)

Hors ligne