operator << (std::ostream& O, const A& a)

operator << (std::ostream& O, const A& a) - C++ - Programmation

Marsh Posté le 21-03-2009 à 02:01:18    

Hi,

 

Une notion m'échappe concernant l'operateur <<  défnit dans iostream (il me semble)

 

sa signature est la suivante :

Code :
  1. std::ostream& operator << (std::ostream& O, const A& a);

(il me semble)

 


On l'utilise de la sorte

Code :
  1. cout << "un" << "deux" << "trois" << "soleil" << endl;
 

ce qui revient à

Code :
  1. cout.operator <<(...,"un" ).operator <<( ...);

(il me semble) c'est justement le premier paramètre de la fonction operator << qui m'intrigue, à quoi est-il égale in fine?

 

Merci.

Message cité 1 fois
Message édité par weblook$$ le 21-03-2009 à 02:50:50

---------------

Reply

Marsh Posté le 21-03-2009 à 02:01:18   

Reply

Marsh Posté le 21-03-2009 à 09:39:54    

weblook$$ a écrit :

Hi,
 
Une notion m'échappe concernant l'operateur <<  défnit dans iostream (il me semble)
 
sa signature est la suivante :

Code :
  1. std::ostream& operator << (std::ostream& O, const A& a);

(il me semble)
 
 
On l'utilise de la sorte

Code :
  1. cout << "un" << "deux" << "trois" << "soleil" << endl;


 
ce qui revient à

Code :
  1. cout.operator <<(...,"un" ).operator <<( ...);

(il me semble)


 
Il y a des operateur<< qui sont membres et d'autres qui sont libres.  Celui dont le second argument est un char const* est libre.  Celui qui prend un formateur est membre.
 
Donc l'expression que tu donnes est équivalente à

Code :
  1. operator<<(operator<<(operator<<(cout, "un" ), "deux" ), "trois" ).operator<<(endl);


Reply

Marsh Posté le 21-03-2009 à 14:15:08    

ok je connaissais pas cette distinction thx


---------------

Reply

Sujets relatifs:

Leave a Replay

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