friend surcharge classe template
Bonsoir,
dans une classe template la déclaration friend ne fonctionne pas !?!?
Alors que dans une classe normale ce code fonctionne.
Quelqu'un peut me dire pourquoi ?
Message d'erreur : Queue<string>::first_' is not accessible
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 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_ ; // n'a 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
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]