opérateur de flux

opérateur de flux - C++ - Programmation

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?
 
?
 
 

Reply

Marsh Posté le 12-11-2011 à 17:24:47   

Reply

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;
}


Message édité par Terminapor le 12-11-2011 à 22:05:40

---------------
Perhaps you don't deserve to breathe
Reply

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 +=

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed