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 avec une fonction const et une référence & !


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 29
    Par défaut Problème avec une fonction const et une référence & !
    Salut à tous,

    J'ai quelques problèmes à utiliser une fonction const avec une référence en paramètre. Voilà la fonction faisant partie d'une liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void enfile(const std::string &nom)
    {
    /////etc
    }
    Et en fait, peu importe ce que je lui passe comme string, ça ne fonctionne pas... Une idée !?

    Voici un exemple de ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::string nomD;
    nomD = p.obtenirNom(); //p.obtenirNom retourne bien une std::string.
    enfile(nomD);
    Et je reçois ce message d'erreur :
    error C2352: 'Projet::File::enfile' : illegal call of non-static member function

    Comme dit plus haut, j'ai aussi essayé avec un simple string : "string" ou std:string toto et enfile(toto), ça donne la même erreur...


    merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Le problème (d'après ce que dit le message d'erreur) n'est pas lié à la string, mais au fait que enfile est une fonction membre d'une classe, et que tu l'appelle comme si c'était une fonction libre.


    Donc, soit tu fais monObjet.enfile("une string");, soit tu enlève la fonction de ta classe, ou tu la passe statique.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    @JolyLoic Je crois plutôt qu'il essai d'appeller enfile (méthode non statique) depuis une méthode statique.

    @Seabast Dans ce cas il faudrait que tu revois à quoi sert le mot-clé statique devant une méthode

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/03/2009, 13h36
  2. Problème avec valeur de retour d'une fonction
    Par ouranos21 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 20/01/2009, 08h52
  3. Appel d'une fonction A depuis une fonction B.
    Par LeFlou dans le forum C++
    Réponses: 9
    Dernier message: 22/05/2007, 17h36
  4. [VBA-E] Une fonction Excel dans une fonction VBA
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/07/2006, 10h21
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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