Overlord operator <<, aide svp - C++ - Programmation
Marsh Posté le 18-09-2003 à 10:15:36
Tu pourras trouver un début de réponse dans cet article (et tous les articles du même auteur traîtant du sujet)
Marsh Posté le 18-09-2003 à 10:17:57
La forme classique de surcharge de l'operateur <<: 
| Code : 
 | 
Marsh Posté le 18-09-2003 à 11:22:20
titre : Overlord operator <<, aide svp 
 
 
t'as produit trop de zerglings et maintenant t baisé fo faire plein d'overlords.....
Marsh Posté le 18-09-2003 à 11:22:42
| LetoII a écrit : La forme classique de surcharge de l'operateur <<:  
   | 
  friend est a utilisé quand on ne peut pas faire autrement
 friend est a utilisé quand on ne peut pas faire autrement
Marsh Posté le 18-09-2003 à 11:26:13
| farib a écrit : titre : Overlord operator <<, aide svp  | 
 
 ![[:alarmclock119] [:alarmclock119]](https://forum-images.hardware.fr/images/perso/alarmclock119.gif) 
  
arf overload 
Marsh Posté le 18-09-2003 à 11:34:28
| Taz a écrit :   | 
 
 
Voyons voir, si je veux que mon operateur externe est accés à toutes les données membre de mon objet j'ai pas trop le choix ![[:meganne] [:meganne]](https://forum-images.hardware.fr/images/perso/meganne.gif)
Marsh Posté le 18-09-2003 à 11:37:29
| xiluoc a écrit :   | 
 
Tu peux aussi essayer de parler français, c'est francophone ici...et avec surcharge c'est plus dur de trouver une connerie à écrire... ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif) 
 
Marsh Posté le 18-09-2003 à 11:39:51
| skeye a écrit :   | 
 
 
Sucage?  ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif) 
  
 
 ![[:dehors2] [:dehors2]](https://forum-images.hardware.fr/images/perso/dehors2.gif)
Marsh Posté le 18-09-2003 à 11:39:57
| LetoII a écrit :   | 
 
 
Hmmm, tu as fait une belle classe avec des set/get, t'as pas besoin de friend 
Marsh Posté le 18-09-2003 à 11:41:57
| Joel F a écrit :   | 
 
 
  je vais me faire chier à appeler getMachin() alors que je peux directement faire machin, voyons
 je vais me faire chier à appeler getMachin() alors que je peux directement faire machin, voyons ![[:meganne] [:meganne]](https://forum-images.hardware.fr/images/perso/meganne.gif)
Marsh Posté le 18-09-2003 à 11:46:33
pourquoi sa marche toujours pas ? 
 
 
ma template.h 
| Code : 
 | 
 
 
 
ensuite les fonctions 
| Code : 
 | 
 
 
dans le main 
 
| Code : 
 | 
 
 
28 H:\PROGRAMMATION\C++\=[PROJETS]=\COMP 125\A3\main.cpp 
no match for `std::ostream& << team_queue<std::string, int>&'  
  
 
Marsh Posté le 18-09-2003 à 11:52:20
| LetoII a écrit : La forme classique de surcharge de l'operateur <<:  
   | 
 
Bon, c'est vrai que le friend n'est pas indispensable (mais pas choquant non plus). 
Mais il y a autre chose que je changerais : 
| Code : 
 | 
 
En effet, l'utilisateur peut vouloir "envoyer" sa classe dans des streams qui ne sont pas de type ostream (wcout par exemple).
Marsh Posté le 18-09-2003 à 11:54:31
| Code : 
 | 
??? 
 
c'est pas : 
| Code : 
 | 
plutot ?
Marsh Posté le 18-09-2003 à 11:56:21
| gatorette a écrit :   
   | 
 
 
Certe, mais bon vu qu'il s'en sort pas avec un truc simple on va pas tout  de suite rentrer dasn les subtilités   
 
Marsh Posté le 18-09-2003 à 11:57:34
| LetoII a écrit :   | 
 
sa serai sympa   
  
1) c est ma premiere template 
2) premiere "surcharge" (non ponderal)
Marsh Posté le 18-09-2003 à 11:57:44
| LetoII a écrit :   | 
 
 
ouais enfin a ce compte la balance tout en public et basta hein ?
Marsh Posté le 18-09-2003 à 11:57:48
z'etes teubé 
 
template<typename T> 
inline ostream & operator<<(ostream &os, const machin<T> &m) 
{ 
  os << m.print();  
  return os; 
} 
 
en général, on ne déclare pas les opérateurs binaires (sauf exception) en fonction membre ou friend. 
 
on voit souvent 
 
ostream & operator<< (ostream &os, const truc &t) 
{ 
  t.print(os); 
  return os; 
} 
 
Marsh Posté le 18-09-2003 à 11:57:49
| xiluoc a écrit : pourquoi sa marche toujours pas ?  
   
   | 
 
 
Je ne trouve vraiment pas ça très élégant. Va voir les liens que j'ai donné au-dessus...
Marsh Posté le 18-09-2003 à 12:13:49
| Code : 
 | 
Marsh Posté le 18-09-2003 à 12:23:09
Reply
Marsh Posté le 18-09-2003 à 09:56:52
Ma template a pour but de simuler une team queue,j ai defini une fonction display pour affiche cette meme team :
sa marche bien, masi a la place je voudrai definir l operateur <<
a la place de display.
C'est mieux de faire cout << myteamq; que myteamq.display();
comment faire sa pour dans mon cas ?
merci.