begin process at 2012 05 30 04:39:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

Surdefinition de fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Surdefinition de fonction

mercredi 16 janvier 2008 à 18:28:36 | Surdefinition de fonction

samaie

float test(int i, int j)

{

return (float) i+j;

}

float test(float i, float j)

{

return i*j;

}

Je vous poste deux fonctions:
Dans le cas ou je ferai un appel telle que test(2.5,3) j'aimerai savoir laquelle des deux fonctions sera applée et aussi en savoir la raison??
Merci.

mercredi 16 janvier 2008 à 18:50:29 | Re : Surdefinition de fonction

luhtor

Soit plus rigoureux, tapes test(2.5f, 3.0f) et  tu n'auras pas de doute.

Sinon pour ton pb, pourquoi ne le testes tu pas au lieu de poster sur un forum ?
Pour la réponse, j'imagine que le compilo va préférer promouvoir le type int en float plutot que de dégrader le floatant 2.5, donc la deuxième fonction sera probablement appelée.
mercredi 16 janvier 2008 à 18:56:12 | Re : Surdefinition de fonction

samaie

Non ma question est justement dans le cas ou dans l'appel de fonction j'ai un float 2.5 et un int 3 ce qui fait
test(2.5f,3(int)) et donc pour savoir en faite pourquoi c'est la 2eme fonction qui va etre applée
je rappelle le code
 

float test(int i, int j)

{

return (float) i+j;

}

float test(float i, float j)

{

return i*j;

}

mercredi 16 janvier 2008 à 19:37:28 | Re : Surdefinition de fonction

SAKingdom

Membre Club
Réponse acceptée !
Ben....
Logiquement parce que la première fonction ne prend que des int mais tu passes un float. Le compilo fera donc appel à la seconde fonction qui prend des floats.

C++ (@++)

jeudi 6 novembre 2008 à 17:33:03 | Re : Surdefinition de fonction

nosferaptus

Le compilateur différencie les deux fonctions par le nombre de paramètre dans ton cas la surcharge est identique dans le nombre, dans ce cas il passe au type de paramètre int pour la 1ere et float pour l'autre c'est comme ça qu'il fait la différence.
Lors de l'exécution c la 2eme qui va être exécutée ==> test(2.5,3.0)


Cette discussion est classée dans : fonction, int, test, float, surdefinition


Répondre à ce message

Sujets en rapport avec ce message

fonction et matrice [ par herve_blondel ] bonjour a tous.je suis un debutant en C++ et j'aimerais ecrire un fonction qui prend en argument une matrice et me retourne une matrice(je sais ce que pourquoi ca marche pas :'( [ par xboxut ] salut j ai un probleme avec une fonction pour initialiser des particules,pouvez vous me dire pourquoi il ne marche pas et comment le faire marcher#inc Uttilisation la fonction d'une DLL [ par aDebhian ] Pour ce faire, j'ai lu msdn, codes-sources et j'en suis arrivé à ceci: [FONCTION DLL] extern "C" __declspec(dllexport) int tests(int test) {     retu Help, DevC++ fonction retournant un float, résultat très étrange... [ par yom007 ] Bonjour,   je travaille sous devC++ et là c'est l'incompréhension, peut-etre qu'une ame charitable pourra venir à mon secours...J'ai reussi à isoler m Probleme de pointeur (enfin je pense) dans l'utilisation d'une fonction [ par neutrix ] Salut.. Help  Je souhaite créer un main et une fonction. Tout cela me servira ensuite en info industriel pour un microcontroleur. Le main s'occupera Classes et fonctions statiques... [ par SW_87 ] Bonjour , J'ai un petit renseignement à vous demander : J'ai créé une application "MFC AppWizzard (exe)" sous VC++ 6.0. Mais pour des raisons que Fonction qui test la validité d'une adresse Email [ par Cedced41 ] Bonjour,J'utilise Visual C++ (Embedded) et je voudrais savoir si quelqu'un a une fonction toute faite qui teste une adresse email passée en paramêtre. débordement de la mémoire [ par imanedaoudi ] Hi,je ne sais plus pourquoi le programme ci contre ne marche plus pour dim trés grande 60 par exemple#includeusing namespace std;void main(int argc, c c++ et delete [ par anne-lise ] Bonjour !voila, j'ai un probleme lorsque je veux faire des delete sur des tableauz.J'ai une fonction du type :float* function(param, int n){   float* Problème d'appel de fonction d'une DLL en C [ par richard22 ] Bonjour Voici mon problème: je réalise une DLL avec cette fonction: DLLIMPORT int Algo(int **result) {    etc...    } et dans un fichier .h : #ifn


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales