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 :

surcharge d'operator<< à l'intérieur de namespace


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Par défaut surcharge d'operator<< à l'intérieur de namespace
    Re-bonjour, j'ai aussi un problème, concernant cette fois la surcharge de l'opérateur << pour des streams lorsqu'on se trouve à l'intérieur d'un namespace.

    voici un bout de code en tant qu'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //header.h
    namespace fooname
    {
        class CFoo
        {
             /*...*/
             FOO_API friend std::ostream& operator<<(std::ostream& os, const CFoo& foo);
        };
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //source.cpp
    namespace fooname
    {
         std::ostream& operator<<(std::ostream& os, CFoo& foo)
         {
               os << /* membres de CFoo */ << std::endl;
               return os;
         }
    }
    Ceci compile, mais j'ai l'impression que je n'ai pas surchargé le bon opérateur.
    J'obtiens des erreurs linkage si je veut accéder à cette fonction.

    D'où ma question, si ce code n'est pas valable, que manque-t-il pour que ca fonctionne? Serait-ce l'operateur<< lui-même qui doit être membre de std::ostream, ou encore autre chose ?

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Manque un const devant CFoo dans la définition de la fonction.

  3. #3
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Par défaut
    aah, que je suis archi-stupide!! et bigleux avec ca.

    Effectivement, si la signature de la fonction n'est pas la même, il aura du mal à la résoudre.

    Grand merci à toi.

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

Discussions similaires

  1. Surcharge d'operator ..
    Par cknaky dans le forum Langage
    Réponses: 7
    Dernier message: 30/05/2013, 14h43
  2. Surcharge d'operator, classe et global operateur
    Par alex.buisson dans le forum Langage
    Réponses: 6
    Dernier message: 15/02/2013, 09h44
  3. surcharge de operator%=
    Par Gébix dans le forum C++
    Réponses: 9
    Dernier message: 16/06/2011, 14h26
  4. Probleme de surcharge d'operator<<
    Par Linu6 dans le forum C++
    Réponses: 11
    Dernier message: 14/06/2008, 13h17
  5. Réponses: 2
    Dernier message: 15/11/2005, 10h59

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