Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2717 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] iostream

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] iostream

n°1124263
Spir
Words are timeless
Posté le 18-06-2005 à 22:57:37  profilanswer
 

Voilà j'ai une classe Emprunteur et une class Collection Emprunteur.
Dans ma classe Emprunteur j'ai déclaré un stream :

Code :
  1. ostream & operator << ( ostream& O, Emprunteur &emprunteur  ) ;
  2. ostream& Emprunteur :: operator << ( ostream& O, Emprunteur &emprunteur )
  3. {
  4. O << emprunteur.getNom() << " " << emprunteur.Prenom() << " " << emprunteur.getAdresse << " " << emprunteur.getVille << " " << emprunteur.getCodePostal << " " << emprunteur.getPays << endl ;
  5. return O ;
  6. }


 
 
Et dans ma collection :
ostream & operator << ( ostream& O ) ;

Code :
  1. ostream & ListEmprunteurs :: operator << ( ostream& O )
  2. {
  3. int i;
  4. for( i=0; i < laListEmprunteurs.getNbElements(); i++ )
  5. {
  6.  cout << ( (Emprunteur)( *laListEmprunteurs[ i ] ) ) ;
  7. }
  8.         //Avec laListEmprunteurs attribut de la classe ListEmprunteurs
  9. return O;
  10. }


 
Ca ne fonctionne pas. Faut il obligatoirement passer un objet du type en ref?
comme ceci :
ostream& Emprunteur :: operator << ( ostream& O, Emprunteur &emprunteur );
ostream & operator << ( ostream& O, ListEmprunteurs  &uneListEmprunteurs ) ;
 
Je précise que j'ai fait un import :
#include <iostream.h>


Message édité par Spir le 18-06-2005 à 22:58:28
mood
Publicité
Posté le 18-06-2005 à 22:57:37  profilanswer
 

n°1124271
Taz
bisounours-codeur
Posté le 18-06-2005 à 23:11:25  profilanswer
 

t'importe rien du tout.
 
#include <iostream>
using namespace std;
 
 
 
ostream& Emprunteur :: operator << ( ostream& O, Emprunteur &emprunteur );
ostream & operator << ( ostream& O, ListEmprunteurs  &uneListEmprunteurs ) ;  
 
dans les deux cas, c'est faux. le prototype doit être
 
ostream& operator<<(ostream& os, const T& t);
 
 
 ( (Emprunteur)( *laListEmprunteurs[ i ] ) ) ;
 
ça te sert à quoi ce cas tout pourri ?
 
d'ailleurs, il te sert à quoi le paramètre ostream si tu écris systématiquement sur cout ?

n°1124298
Spir
Words are timeless
Posté le 19-06-2005 à 00:11:00  profilanswer
 

Taz a écrit :

t'importe rien du tout.
 
#include <iostream>
using namespace std;
 
 
 
ostream& Emprunteur :: operator << ( ostream& O, Emprunteur &emprunteur );
ostream & operator << ( ostream& O, ListEmprunteurs  &uneListEmprunteurs ) ;  
 
dans les deux cas, c'est faux. le prototype doit être
 
ostream& operator<<(ostream& os, const T& t);
 
 
 ( (Emprunteur)( *laListEmprunteurs[ i ] ) ) ;
 
ça te sert à quoi ce cas tout pourri ?
 
d'ailleurs, il te sert à quoi le paramètre ostream si tu écris systématiquement sur cout ?


 
Ouais je me suis planté...
 

Code :
  1. ostream& operator << ( ostream& O, const Emprunteur &emprunteur ) ;
  2. ostream & Emprunteur :: operator << ( ostream& O, const Emprunteur &emprunteur  )
  3. {
  4. O << emprunteur.getNom() << " " << emprunteur.getPrenom() << " " << emprunteur.getAdresse() << " " << emprunteur.getVille() << " " << emprunteur.getCodePostal() << " " << emprunteur.getPays() << endl ;
  5. return O;
  6. }


error C2804: binary 'operator <<' has too many parameters
 
Pourquoi??


Message édité par Spir le 19-06-2005 à 00:17:45
n°1124300
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:13:46  profilanswer
 

parceque

n°1124302
Spir
Words are timeless
Posté le 19-06-2005 à 00:16:34  profilanswer
 

aaaah

n°1124304
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:20:11  profilanswer
 

# ostream& operator << ( ostream& O, const Emprunteur &emprunteur ) ;
#
# ostream & Emprunteur :: operator << ( ostream& O, const Emprunteur &emprunteur);
 
t'es lourds avec tes conneries. C'est quoi ces espaces dans tous les sens, et qu'est-ce qui te prends de déclarer 2 chose contradictoires. .. et tes messages d'erreur, tu te les gardes, on peut pas deviner ce qui se passe si tu ne donnes même pas la ligne concernée. Aide toi toi-même.

n°1124306
Spir
Words are timeless
Posté le 19-06-2005 à 00:22:36  profilanswer
 

Taz a écrit :

# ostream& operator << ( ostream& O, const Emprunteur &emprunteur ) ;
#
# ostream & Emprunteur :: operator << ( ostream& O, const Emprunteur &emprunteur);
 
t'es lourds avec tes conneries. C'est quoi ces espaces dans tous les sens, et qu'est-ce qui te prends de déclarer 2 chose contradictoires. .. et tes messages d'erreur, tu te les gardes, on peut pas deviner ce qui se passe si tu ne donnes même pas la ligne concernée. Aide toi toi-même.


Bah le message d'erreur concerne la ligne de déclaration de la méthode dans le .h

n°1124308
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:24:19  profilanswer
 

si tu le dis ... vu qu'à aucun moment tu ne déclares de méthodes ...

n°1124310
Spir
Words are timeless
Posté le 19-06-2005 à 00:27:34  profilanswer
 

ostream& operator << ( ostream& O, const Emprunteur &emprunteur ) ;  
 
Ca c'est une déclaration de méthode.
le ";" le montre bien...
 
Et ca :
 
ostream & Emprunteur :: operator << ( ostream& O, const Emprunteur &emprunteur)
{  
 O << emprunteur.getNom() << " " << emprunteur.getPrenom() << " " << emprunteur.getAdresse() << " " << emprunteur.getVille() << " " << emprunteur.getCodePostal() << " " << emprunteur.getPays() << endl ;
 return O;
}
 
C'est la méthode dans le .cpp

n°1124314
Taz
bisounours-codeur
Posté le 19-06-2005 à 00:30:44  profilanswer
 

non c'est une déclaration de fonction. avec des espaces pourris dans tous les sens.
Ensuite c'est la définition d'une fonction membre dans un cpp.
 
Bref, y a rien de valide. Pour toute entité, il faut une déclaration et une définition.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] iostream

 

Sujets relatifs
pb iostream & coutiostream bizarre
[debutant] Probleme avec include iostream sous VC++Python à la sauce iostream
iostream sous Cygwin.[C++ builder ] E/S de fichier avce la classe iostream
Plus de sujets relatifs à : [C++] iostream


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)