Les conversions des types dans l'appel des fonctions en c++ [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mardi 15 décembre 2015
Statut
Membre
Dernière intervention
11 avril 2016
-
Messages postés
8
Date d'inscription
mardi 15 décembre 2015
Statut
Membre
Dernière intervention
11 avril 2016
-
Bonjour,
je suis débutant en c++ , je connais les types primitfs :short char int float double ..
mais j'ai un probléme au niveau d'appel des fontions surdéfinis, je ne sais pas quel fonction sera utilisé , j'ai cherché sur internet mais j'ai pas bien compris ce que ce passe au nivaux de la compilation de mon code là:

#include<iostream>
using namespace std;

void clone(double d){cout <<"\nLa fonction II = "; }
void clone(int n){cout << "\nLa fonction I = "; }



main(){
clone(2);
// ici la fonction va vaire appel à clone(int) , alors que le nombre 2 on peut le considére comme int , float ,double ....
// quand je mis clone(2.5) il me donne une erreur , que y'a d'ambiguité , entre clone(int) et clone(double) , pourquoi on a pas eu cette erreur avec l'appel clone(2) ?? ou bien sur quel niveau on se base là?? Merci d'avaaaaaaance :)
}

1 réponse

Messages postés
16120
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2020
2 736
Bonjour,

Quand tu écris une valeur en dure dans le code, celle-ci a un type comme toutes les autres valeurs. C'est ce type qui est utilisé pour choisir la bonne méthode. Voici quelques écritures différentes de nombres :

#include<iostream>

using namespace std; 

void test(int n) {
    cout << "int " << n << endl;
}
void test(long n) {
    cout << "long " << n << endl;
}
void test(float n) {
    cout << "float " << n << endl;
}
void test(double n) {
    cout << "double " << n << endl;
}

int main(){ 
    test(1); // int 1
    test(2L); // long 2
    test(3.0); // double 3
    test(4e0); // double 4
    test(5.0f); // float 5
    test(6.0d); // double 6
    test(00010); // int 8
    test(0x010); // int 16
}
Messages postés
8
Date d'inscription
mardi 15 décembre 2015
Statut
Membre
Dernière intervention
11 avril 2016

Mercii Beaucoup pour ton aide a chaque fois (y)