iostream [C++] - C++ - Programmation
Marsh Posté le 18-06-2005 à 23:11:25
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 ?
Marsh Posté le 19-06-2005 à 00:11:00
Taz a écrit : t'importe rien du tout. |
Ouais je me suis planté...
Code :
|
error C2804: binary 'operator <<' has too many parameters
Pourquoi??
Marsh Posté le 19-06-2005 à 00:20:11
# 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.
Marsh Posté le 19-06-2005 à 00:22:36
Taz a écrit : # ostream& operator << ( ostream& O, const Emprunteur &emprunteur ) ; |
Bah le message d'erreur concerne la ligne de déclaration de la méthode dans le .h
Marsh Posté le 19-06-2005 à 00:24:19
si tu le dis ... vu qu'à aucun moment tu ne déclares de méthodes ...
Marsh Posté le 19-06-2005 à 00:27:34
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
Marsh Posté le 19-06-2005 à 00:30:44
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.
Marsh Posté le 18-06-2005 à 22:57:37
Voilà j'ai une classe Emprunteur et une class Collection Emprunteur.
Dans ma classe Emprunteur j'ai déclaré un stream :
Et dans ma collection :
ostream & operator << ( ostream& O ) ;
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