Surdefinition de l'operateur "<<" avec une classe
Bonjour a tous,
Je n'arrive pas a redefinir l'operateur "<<" avec ma classe. Voici ce que j'ai reussi a faire compiler en tatonnant :
IntervalleErreur.cxx
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| string operator << (const string toto, const IntervalleErreur &IE)
{
switch (IE.type_ie)
{
case 0:
return toto+" DefinitionErreur";
break;
case 1:
return toto+" EmptyErreur";
break;
case 2:
return toto+" DivisionParZeroErreur";
break;
}
} |
IntervalleErreur.hxx
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <string>
using namespace std;
#ifndef INTERVALLEERREUR
#define INTERVALLEERREUR
enum ErreurType {DefinitionErreur, EmptyErreur, DivisionParZeroErreur};
class IntervalleErreur
{
private:
ErreurType type_ie;
public:
friend string operator << (const string, const IntervalleErreur&);
IntervalleErreur(ErreurType);
void AfficheIE(void);
};
#endif |
J'ai reussi dans une autre classe a surdefinir des operateurs "+", "-", "*"...etc. a peu pres de la meme maniere, mais ca n'a pas l'air de fonctionner de la meme maniere avec cet operateur la.
Le but est que quand je fais:
Code:
1 2 3
|
IntervalleErreur ie(EmptyErreur);
cout<<"Type de l'erreur "<<ie<<endl; |
j'obtienne :
Code:
1 2
|
Type de l'erreur EmptyErreur |
Quelqu'un peut me depanner ?
Merci d'avance