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++Builder Discussion :

Problème de trans-typage


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 66
    Par défaut Problème de trans-typage
    Bonjour ,

    J'ai deux méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall ReturnB(const System::Variant &AValue); //une méthode de la classe B
     
     long double bin();   // bin est une méthode de la classe A
     
    je voudrais faire comme suit 
    A *a
    B *b
    long double test ;
    test = a->bin();
    b->ReturnB(test);
    mais j'ai l'erreur suivante qui s'affiche :


    E2034 Impossible de convertir 'list<long double,allocator<long double> >' en 'tagVARIANT'

    J'ai en premier lieu pensé au cast avec dynamic_cast mais ça marche pas !

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    le problème c'est de vouloir le passer en référence, cela doit le perturber !
    deux solutions possible :

    1)
    void __fastcall Return(const System::Variant AValue); suppression du &,
    il devrait alors appeler implicitement le constructeur Variant(double)

    2)
    Sinon, on conserve & mais test devient Variant Variant test = a->bin();
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 66
    Par défaut
    J'ai modifié un peu le code

    void __fastcall ReturnB(const System::Variant &AValue); //une méthode de la classe B

    long double bin(); // bin est une méthode de la classe A

    quand je procède comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    A *a
    B *b
    VARIANT test ;
    test = a->bin();
    b->ReturnB(test);
    J'ai le message d'erreur suivant
    E2034 Impossible de convertir 'list<long double,allocator<long double> >' en 'tagVARIANT'

    et quand je procède comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    A *a
    B *b
    list <long double> test ;
    test = a->bin();
    b->ReturnB(test);
    J'ai l'erreur suivante
    E2193 Trop peu de paramètres dans l'appel à '_fastcall A::ReturnB(const Variant &)'

    et j'ai pas le droit de modifier la fonction ReturnB

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    c'est list<> et non un simple long double test !

    Il faudrait dans ce cas, boucler via un iterator pour passer un par un chaque double
    Ou alors construire un tableau Variant de Variant, avec VarArrayCreate

    Le Variant est prévu pour des types Delphi, un template list<> il ne doit pas comprendre, il n'a pas le constructeur pour cela !

    Sinon, utilise plutôt un TDoubleDynArray tout au long de tes fonctions

    Citation Envoyé par belfort90 Voir le message
    et j'ai pas le droit de modifier la fonction ReturnB
    Montre la fonction ReturnB, la VRAIE !
    Ainsi que la fonction Bin ! La version ORIGINALE sans alteration
    c'est difficile de comprendre du code trop allégé et hors de son contexte

    Et surtout quel est bon but ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/02/2007, 17h56
  2. problème de typage
    Par sissi25 dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 10/01/2007, 12h59
  3. [Typage] Problème avec typage de variables
    Par elitemedia dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2006, 02h18
  4. [Tableaux] Problème de typage sur un float
    Par Lomu dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2006, 11h47
  5. [SQL2005] problèmes de typage de colonne en XML
    Par titouc330 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/10/2006, 12h52

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