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
Marsh Posté le 18-09-2003 à 11:26:13
farib a écrit : titre : Overlord operator <<, aide svp |
arf overload
Marsh Posté le 18-09-2003 à 11:34:28
Taz a écrit : friend est a utilisé quand on ne peut pas faire autrement |
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
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...
Marsh Posté le 18-09-2003 à 11:39:51
skeye a écrit : |
Sucage?
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
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.