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 :

[debutante] surcharge operateur <<


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut [debutante] surcharge operateur <<
    Bonjour,

    Je suis désolée de poster un sujet à propos de ca car je sais et j'ai vu déjà bcp de sujets s'y rapportant... J'ai essayé un peu toutes les solutions proposées, les "inline" les "friend" mais j'obtiens toujours la même erreur à la compilation :

    exon.h:24: error: `std::ostream& exon::operator<<(std::ostream&, exon&)' must
    take exactly one argument
    Voici la dernière version de mon code, j'ai tout mis dans le .h comme certains le suggerent...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     inline std::ostream& operator<<(std::ostream &flux,  exon &e)
        {
          flux << e.getNum() << ":" << e.getDeb() << "->" << e.getFin();
          return flux;
        }
    Je ne sais pas je fais peut-être completement fausse route avec le inline.
    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    Il me semble, vu le message d'erreur que tu fournis, que tu as déclaré ton opérateur comme
    fonction membre de la classe exon. Dans ce cas, il ne peut prendre qu'un seul
    argument en paramètre, le flot (l'opérateur s'applicant sur une instance de la classe).

    Il vaut mieux le déclarer comme fonction globale. Et dans ce cas, il prends deux paramètres. Quant au inline, c'est un choix.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class exon{
    ...
    };
    inline std::ostream& operator<<(std::ostream& os, const exon& e)
    {
      ...
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Ca compile!! Merci... Je n'avais pas saisi qu'il ne fallait pas declarer l'operateur comme une fonction de la classe...

    Pour le inline je ne suis pas sure d'avoir saisi son interet, pour l'instant je le laisse donc...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    Citation Envoyé par norkius
    Ca compile!! Merci... Je n'avais pas saisi qu'il ne fallait pas declarer l'operateur comme une fonction de la classe.
    En fait, il vaut mieux éviter. Mais bon, ce sont des points à aborder plus tard je pense.

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

Discussions similaires

  1. surcharge operateur externe symmetrique
    Par harsh dans le forum C++
    Réponses: 1
    Dernier message: 13/07/2006, 16h10
  2. surcharge operateur delete et héritage
    Par Hervé dans le forum C++
    Réponses: 5
    Dernier message: 29/03/2006, 13h59
  3. Surcharge operateur =
    Par rulianf dans le forum C++
    Réponses: 9
    Dernier message: 23/02/2006, 00h32
  4. [Surcharge]Operateur<< avec une classe maison
    Par KeNnEdY dans le forum C++
    Réponses: 6
    Dernier message: 14/09/2005, 15h51
  5. surcharge operateur && pointeurs
    Par le y@m's dans le forum C++
    Réponses: 6
    Dernier message: 10/05/2005, 15h57

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