friend surcharge class template - C++ - Programmation
Marsh Posté le 15-11-2005 à 19:26:26
commence par mettre le meme prototype dans la déclaration friend que dans la définition.
ensuite, on ne spécialise pas une fonction template avant d'avoir déclaré cette fonction template.
Code :
|
Je ne connais pas de méthode moins élégantes pour faire ça.
Pour plus élégant, prend ton bouton recherche, tu va trouver plusieurs réponses dans les posts de moins de 48 heures
Citation : PS : je préfère friend, au getter/setter pour question de performance |
elle est bien bonne celle la
Marsh Posté le 15-11-2005 à 19:47:03
pour la milième fois
Code :
|
Marsh Posté le 15-11-2005 à 17:37:02
Bonsoir,
dans une classe template la déclaration friend ne fonctionne pas !?!?
Alors que dans une classe normale ce code fontionne.
Quelqu'un peut me dire pourquoi ?
Message d'erreur : Queue<string>::first_' is not accessible
template <class T>
class Queue
{
friend ostream& operator<< <>(ostream &o, const Queue<T> &queue) ;
private :
Node<T>* first_ ;
Node<T>* last_ ;
int size_ ;
......
} ;
template <class T>
ostream& operator<<(ostream& o, const Queue<T>* &queue)
{
Node<T>* n = queue->first_ ; // pas accès à first_ alors que ça été déclaré friend !
while (n)
{
o << *(n->data_) << "\t" ;
n = n->next_ ;
}
return o ;
}
PS : je préfère friend, au getter/setter pour question de performance
Voilà, merci