j'essaie de créer la classe suivante :
class chaine
{
private: //Elements privés
int longueur;
char *s;
public:
chaine(); //Constructeur par défaut
chaine(const char *); //Constructeur à partir d'une chaine
chaine(const chaine &); //Constructeur par recopie
~chaine(); //Destructeur
//Autres fonctions
int longueurChaine();
void inverse();
int position(char *);
int nbreMots();
};
en voulant surcharge l'opérateur de sortie de la sorte
//Surcharge des opérateus d'entrées/sorties
ostream& operator << (ostream & ostr, const chaine & c)
{
ostr<<c.s;
return ostr;
}
G un message d'erreur qui est le suivant :
Compiling...
chaine.cpp
error C2556: 'class ostream &__cdecl operator <<(class ostream &,const class
chaine &)' : overloaded function differs only by return type from 'class
chaine __cdecl opera
tor <<(class ostream &,const class chaine &)'
see declaration of '<<'
error C2040: '<<' : 'class ostream &(class ostream &,const class chaine &)'
differs in levels of indirection from 'class chaine (class ostream &,const
class chaine &)'
Error executing cl.exe.
chaine.obj - 2 error(s), 0 warning(s)
Je vois pas du tout d'ou vient l'eereur. Une idée ??
Merci par avance
Bonne journée à tous "" a écrit dans le message de news: bj3rjo$o7r$
j'essaie de créer la classe suivante : class chaine { private: //Elements privés int longueur; char *s;
public: chaine(); //Constructeur par défaut chaine(const char *); //Constructeur à partir d'une chaine chaine(const chaine &); //Constructeur par recopie ~chaine(); //Destructeur
//Autres fonctions int longueurChaine(); void inverse(); int position(char *); int nbreMots(); };
en voulant surcharge l'opérateur de sortie de la sorte //Surcharge des opérateus d'entrées/sorties ostream& operator << (ostream & ostr, const chaine & c) { ostr<<c.s; return ostr; } G un message d'erreur qui est le suivant : Compiling... chaine.cpp error C2556: 'class ostream &__cdecl operator <<(class ostream &,const class
chaine &)' : overloaded function differs only by return type from 'class chaine __cdecl opera tor <<(class ostream &,const class chaine &)' see declaration of '<<' error C2040: '<<' : 'class ostream &(class ostream &,const class chaine &)'
differs in levels of indirection from 'class chaine (class ostream &,const class chaine &)' Error executing cl.exe.
chaine.obj - 2 error(s), 0 warning(s)
Je vois pas du tout d'ou vient l'eereur. Une idée ?? Merci par avance
G trouvé en fait mon erreur
friend chaine operator << (ostream &, const chaine &);
friend chaine operator >> (istream &, chaine &);
Bonne journée à tous
"M@xo" <mnana.net@wanadoo.fr> a écrit dans le message de news:
bj3rjo$o7r$1@news-reader4.wanadoo.fr...
j'essaie de créer la classe suivante :
class chaine
{
private: //Elements privés
int longueur;
char *s;
public:
chaine(); //Constructeur par défaut
chaine(const char *); //Constructeur à partir d'une chaine
chaine(const chaine &); //Constructeur par recopie
~chaine(); //Destructeur
//Autres fonctions
int longueurChaine();
void inverse();
int position(char *);
int nbreMots();
};
en voulant surcharge l'opérateur de sortie de la sorte
//Surcharge des opérateus d'entrées/sorties
ostream& operator << (ostream & ostr, const chaine & c)
{
ostr<<c.s;
return ostr;
}
G un message d'erreur qui est le suivant :
Compiling...
chaine.cpp
error C2556: 'class ostream &__cdecl operator <<(class ostream &,const
class
chaine &)' : overloaded function differs only by return type from 'class
chaine __cdecl opera
tor <<(class ostream &,const class chaine &)'
see declaration of '<<'
error C2040: '<<' : 'class ostream &(class ostream &,const class chaine
&)'
differs in levels of indirection from 'class chaine (class ostream &,const
class chaine &)'
Error executing cl.exe.
chaine.obj - 2 error(s), 0 warning(s)
Je vois pas du tout d'ou vient l'eereur. Une idée ??
Merci par avance
Bonne journée à tous "" a écrit dans le message de news: bj3rjo$o7r$
j'essaie de créer la classe suivante : class chaine { private: //Elements privés int longueur; char *s;
public: chaine(); //Constructeur par défaut chaine(const char *); //Constructeur à partir d'une chaine chaine(const chaine &); //Constructeur par recopie ~chaine(); //Destructeur
//Autres fonctions int longueurChaine(); void inverse(); int position(char *); int nbreMots(); };
en voulant surcharge l'opérateur de sortie de la sorte //Surcharge des opérateus d'entrées/sorties ostream& operator << (ostream & ostr, const chaine & c) { ostr<<c.s; return ostr; } G un message d'erreur qui est le suivant : Compiling... chaine.cpp error C2556: 'class ostream &__cdecl operator <<(class ostream &,const class
chaine &)' : overloaded function differs only by return type from 'class chaine __cdecl opera tor <<(class ostream &,const class chaine &)' see declaration of '<<' error C2040: '<<' : 'class ostream &(class ostream &,const class chaine &)'
differs in levels of indirection from 'class chaine (class ostream &,const class chaine &)' Error executing cl.exe.
chaine.obj - 2 error(s), 0 warning(s)
Je vois pas du tout d'ou vient l'eereur. Une idée ?? Merci par avance