IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Débutant, problème de surcharge


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut Débutant, problème de surcharge
    Bonjour,
    je débute en c++ j'ai visiblement un problème de surcharge avec la fonction div, je cherche à caster un int en long pour y remédier

    le message d'erreur renvoyé est le suivant:

    c:\c++\tests\maori_visualstudio\cximage\ximatran.cpp(183) : error C2666: 'div' : les 2 surcharges ont des conversions similaires
    c:\program files\microsoft visual studio 8\vc\include\stdlib.h(508): peut être 'ldiv_t div(long,long)'
    c:\program files\microsoft visual studio 8\vc\include\stdlib.h(482): ou 'div_t div(int,int)'
    lors de la tentative de mise en correspondance de la liste des arguments '(long, int)'

    c'est très bête comme question mais je n'ai pas trouvé la réponse dans le faq cpp

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pour faire une conversion de ce genre il faut utiliser l'opérateur de cast static_cast.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    long x;
    int y;
     
    int z = div(x, static_cast<long>(y));
    Voir la FAQ :
    http://c.developpez.com/faq/cpp/?pag...s#DIVERS_casts

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    Merci

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    bon

    à la base j'ai ça:

    long x,x2,y,dlineup;

    for (y = 0; y < head.biHeight; y++) {

    div_r = div(y + dlineup,8);


    j'ai le message d'erreur présenté avant
    du coup je mets ça:

    long x,x2,y,dlineup;
    int huit=8;

    for (y = 0; y < head.biHeight; y++) {

    div_r = div(y + dlineup,static_cast<long>(huit));


    et la j'ai le message suivant:

    c:\c++\tests\maori_visualstudio\cximage\ximatran.cpp(183) : error C2679: '=' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'ldiv_t' (ou il n'existe pas de conversion acceptable)
    c:\program files\microsoft visual studio 8\vc\include\stdlib.h(82): peut être '_div_t &_div_t::operator =(const _div_t &)'
    lors de la tentative de mise en correspondance de la liste des arguments '(div_t, ldiv_t)'


    Merci d'être patient avec un nul comme moi

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Apparemment le retour de div est un ldiv_t pour la version long, et un div_t pour la versiont int. Il faut donc que ton div_r soit un ldiv_t et non un div_t.

    PS : pense à utiliser les balises CODE

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    super ca marche merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2007, 14h59
  2. Réponses: 2
    Dernier message: 25/07/2004, 23h24
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo