[deb.]Surcharge des Oper. Erreur "ambiguous overload&qu
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:
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:
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:
Citation:
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