Incapable de surcharge << avec Classe générique

Incapable de surcharge << avec Classe générique - C++ - Programmation

Marsh Posté le 11-11-2005 à 13:38:12    

Sous builder, je définis une classe Générique avec une surcharge d'opérateur classique : cout  
 
  template <class T>  class TQueue  
{
    friend ostream& operator<< <>(ostream&, const TQueue& );
    ......
}
 
    template <class T>
    ostream& operator<<(ostream& out, const TQueue<T>& c)
      {
      out << "Pk ca marche pas ?" ;
      return out;
      } ;
 
et dans le main :  
 
structure::TQueue<int>* q = new structure::TQueue<int>() ;
cout << q ; // overload operator << !
 
Il m'affiche une valeur numérique qui est l'adresse !!!
Il utilise le cout par défaut ? Comment prendre le mien ? Ca craint !  
 

Reply

Marsh Posté le 11-11-2005 à 13:38:12   

Reply

Marsh Posté le 11-11-2005 à 14:03:51    

hmmm deja operator<< n'a pas a etre friend :o
sinon, avec ta cochonnerie, la syntaxe est :
 

Code :
  1. template <class T>  class TQueue 
  2. {
  3.     friend template<class U> ostream& operator<<(ostream&, const TQueue<U>& );
  4.     ......
  5. }
  6. template <class T>
  7. ostream& operator<<(ostream& out, const TQueue<T>& c)
  8. {
  9.     out << "Pk ca marche pas ?" ;
  10.     return out;
  11. } ;
  12. structure::TQueue<int>* q = new structure::TQueue<int>() ;
  13. cout << q ;


Message édité par Joel F le 11-11-2005 à 14:04:22
Reply

Marsh Posté le 11-11-2005 à 14:07:07    

putain mais y a eu exactement le même sujet y 1 mois ...
 
 
friend ça pue, t'en as pas besoin

Reply

Marsh Posté le 11-11-2005 à 14:13:58    

J'ai l'impression que le friend en C++, est ce que le goto est au C ...


Message édité par ++fab le 11-11-2005 à 14:14:30
Reply

Marsh Posté le 11-11-2005 à 14:17:51    

Taz a écrit :

putain mais y a eu exactement le même sujet y 1 mois ...
 
 
friend ça pue, t'en as pas besoin


 
Merci pour l'info, directement dans la classe
 
    ostream& operator<<(const TQueue<T>& c)
      {
      out << "Pk ca marche pas ?" ;
   return out;
      }
 
Mais le cout m'affiche toujours une valeur numérique.
PS : le sujet il y a un mois, je l'ai lu mais il n'y avait pas la réponse

Reply

Marsh Posté le 11-11-2005 à 14:23:41    

mon oeil
 
même technique ici.
http://forum.hardware.fr/hardwaref [...] 2773-1.htm
 
également dans un poste de joelf ....
 
 
sinon ton code il est gentil, il sort d'où out ?

Reply

Marsh Posté le 11-11-2005 à 14:24:13    

Reply

Marsh Posté le 11-11-2005 à 14:41:09    

++fab a écrit :

cout << *q;


Merci
Bon week-end à tous.

Reply

Marsh Posté le 11-11-2005 à 14:43:01    

c'est n'imp ces friend, tout ça parce que des abrutis d'enseignants l'enseignent comme ça.

Reply

Marsh Posté le 12-11-2005 à 09:53:51    

Taz a écrit :

putain mais y a eu exactement le même sujet y 1 mois ...


 
trop d'informatino tue l'information.
Faudrait ce monter un wiki sur les do & don't du C++ ...

Reply

Marsh Posté le 12-11-2005 à 09:53:51   

Reply

Marsh Posté le 12-11-2005 à 12:34:04    

le truc c'est que le C++ est pas genre à rajouter un mot-clef pour une fonctionnalité qui est contournable facilement avec le langage.

Reply

Sujets relatifs:

Leave a Replay

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