opérateur de flux - C++ - Programmation
Marsh Posté le 12-11-2011 à 22:02:58
Non, le << et >> dans un flux c'est binaire, il faut la donnée à injecter/extraire et le flux genre :
ostream& operator << (ostream& o ,const ma_struct &a)
{
o<<a.une_variable<<a.une_autre_variable;
}
Marsh Posté le 01-12-2011 à 22:37:55
flux, c'est stream en anglais.
Citation : J'ai lu que la politique générale c'est de définir des opérateur unaires à l'intérieur d'une classe, et les opérateurs binaires à l'extérieur. |
oui, de toute façon autrement ça ne compilera pas. l'operateur<< par exemple, si tu le définit unaire à l'extérieur, ça ne compile pas.
les operateurs de steam consiste à surcharger avec un std::[io]stream en 1er paramètre comme le dit Terminapor. La logique est différente des operateurs comme +=
Marsh Posté le 12-11-2011 à 17:24:47
Déjà, en anglais, il s'appelle comment?
Voilà ma question.
J'ai lu que la politique générale c'est de définir des opérateur unaires à l'intérieur d'une classe, et les opérateurs binaires à l'extérieur. vrai? faux?
les opérateurs << et >> sont des opérateurs de décalage de bits, ils sont binaires.
mais << et >> c'est aussi des opérateurs de flux. Ils sont bien unaires ou je me plante?
donc il vaut mieux écrire:
ma_struct& operator <<(float a){blabla;return *this;} comme fonction membre
ou
ma_struct& operator <<(ma_struct &in, float a){blabla;return in;} comme fonction externe?
?