J'ai créé un programme basé sur une surcharge de fonction consistant en 2 fonctions int cube (int) et float cube (float). Ma fonction principale lit les valeurs de int x et float y respectivement. Maintenant, quand je lance le programme, je mets une valeur float au lieu de l'entier va; ue Et quand je mets 2.5 (valeur décimale) au lieu de valeur entière dans la variable "x", Le compilateur ne me demande pas la valeur de y et automatiquement 2 pour x (int) et 0.5 pour y (float) et retourne le cube de 0.5. Pourquoi cela arrive. Pourquoi 0.5 est automatiquement stocké dans y au lieu de demander l'entrée?Programme basé sur une surcharge de fonction
Mon programme est comme ça -
#include<iostream>
using namespace std;
int main()
{
int x;
float y;
int cube(int);
float cube(float);
cout<<"Enter a number to find its cube"<<endl;
cin>>x;
cout<<"The cube of the number "<<x<<" is "<<cube(x)<<endl;
cout<<"Enter a number to find its cube"<<endl;
cin>>y;
cout<<"The cube of the number "<<y<<" is "<<cube(y)<<endl;
return 0;
}
int cube (int num)
{
return num*num*num;
}
float cube (float num)
{
return num*num*num;
}
sortie est -
Enter a number to find its cube 2.5 The cube of number 2 is 8 Enter the number to find its cube The cube of number 0.5 is 0.125
Quelqu'un peut-il me aider à ce sujet Merci
Je suggère d'utiliser une méthode de modèle – Simon
Le titre de la question ne donne pas vraiment la moindre idée du problème. Ce problème doit être raisonnablement fréquent chez les débutants, mais je n'ai pas trouvé de dupe avec une recherche rapide. – Walter