Bonjour,
J'ai un soucis avec une surcharge d'operateur qui ne fait pas ce que je veux.
En fait j'en ai fais deux sur le meme modele, ce qui fait que je ne comprend pas pourquoi une est acceptee et l' autre pas.

Voila j'ai une defini une class avec des variables privates div et num.

Dans ma class j'ai defini une surcharge pour mes deux elements avec le mot cle friend pour justement permettre l'acces a ces variables.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
//surcharge de l'operateur >>cin
friend istream& operator >> (istream&, const fraction& F);
 
//surcharge de l'operateur <<cout
friend ostream& operator << (ostream&, const fraction& F);
Ici j'ai implemente ma surcharge pour les deux operateurs.
(J'ai implemente et controle cout avant et separement raison pour laquelle je sais que cela marche)

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
 
//Surcharge de l'operateur cout<<
ostream& operator << (ostream& flux, const fraction& F){
flux << "\n Nominateur   : ";
flux << F.num;
flux << "\n Denominateur : ";
flux << F.div;
cout <<"\n"; 
return flux;
}//Fin Surcharge cout
 
//Surcharge de l'operateur cin>>
istream& operator >> (istream& flux, const fraction& F){
cout << "\n Numerateur   ?:";
flux >> F.num;
cout << "\n Denominateur ?:";
flux >> F.div;
return (flux);
}//Fin Surcharge cin
Et je me prend le message d'erreur suivant:

C:\Dev-Cpp\classFraction\fra.cpp In function `std::istream& operator>>(std::istream&, const fraction&)':
49 C:\Dev-Cpp\classFraction\fra.cpp ambiguous overload for 'operator>>' in 'flux >> F->fraction::num'
note C:\Dev-Cpp\include\c++\3.4.2\bits\istream.tcc:87 candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>] <near match>
Je ne saisit pas d'ou viens l'ambiguite.

Est-ce que quelqu'un peut m'aider?

D'avance merci

Marc_3