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
PS : je préfère friend, au getter/setter pour question de performance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ; }
Voilà, merci
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Partager