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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
IntervalleErreur ie(EmptyErreur);
cout<<"Type de l'erreur "<<ie<<endl;
j'obtienne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Type de l'erreur EmptyErreur
Quelqu'un peut me depanner ?
Merci d'avance