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 :

Problème de paramètres


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Problème de paramètres
    Bonjour,

    Je pense que mon erreur est basique mais je n'arrive pas à trouver l'explication.

    Voici une classe: Entry

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class LIBAS_DECL Entry {
    public:
            typedef std::string ObjectContext;
            struct Prefix {
     
                    const ObjectContext     *component; 
                    uint32_t                thrid;        
                    uint32_t                reqid;
                    Prefix(const ObjectContext *c) : component(c), thrid(0), reqid(0) { }
     
            };
     
    public:
            Level level;
            Prefix prefix;
            class Writer &writer;
     
    public:
     
            Entry(Prefix p, Writer &w);
    	}
    Mon but est d'initialiser un objet Entry.

    Voici se que je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    const std::string tmp2;
     
    Entry::Prefix  pfx(&tmp2);
     
    OSWriter       MyWriter(lvl ,fp);
     
    Entry          MyEntry(pfx, &MyWriter );
    Lors de la compilation, j'ai une erreur qui, d'après moi, annonce que je passe la structure Prefix (pfx) en tant que référence:
    error: no matching function for call to `STLRT::Log::Entry::Entry(STLRT::Log::Entry::Prefix&, STLRT::Log::OSWriter*)'
    et le compilateur me propose ceci:
    note: candidates are: STLRT::Log::Entry::Entry(STLRT::Log::Entry::Prefix, STLRT::Log::Writer&)
    Je ne peux pas toucher à la classe Entry.

    Merci de votre aide, d'une piste, un cours ou tout autre apport.

    G.

  2. #2
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Bonjour,
    D'après le message d'erreur du compilateur le constructeur de Entry attends un paramètre de type référence sur un Writer (STLRT::Log::Writer&), mais toi tu lui passes un pointeur sur un OSWriter (STLRT::Log::OSWriter*)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse.

    Ca fonctionne mais je ne comprends pas pourquoi le compilateur me met:
    STLRT::Log::Entry::Entry(STLRT::Log::Entry::Prefix&, STLRT::Log::OSWriter*)

    Cordialement,

    G.

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut
    Citation Envoyé par hypo7675 Voir le message
    Merci pour ta réponse.

    Ca fonctionne mais je ne comprends pas pourquoi le compilateur me met:
    STLRT::Log::Entry::Entry(STLRT::Log::Entry:refix&, STLRT::Log::OSWriter*)

    Cordialement,

    G.
    Ben, tout simplement parce que le code qui fait appel au constructeur de Entry est écrit sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entry          MyEntry(pfx, &MyWriter );
    et que l'esperluette ( & ) agit, ici, en tant qu'opérateur "adress of", ce qui fait que tu passes... un pointeur à la fonction
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Problème requête paramétrée mysqli
    Par Ethylene dans le forum Installation
    Réponses: 5
    Dernier message: 15/05/2006, 16h57
  2. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53
  3. [POO] Problème de paramètre passé par référence
    Par dug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2005, 20h29
  4. [JSP] Problème passage paramètre
    Par besco dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/09/2004, 10h15
  5. [SWT] Problème de paramètre GridData
    Par yolepro dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 06/12/2002, 10h37

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