littlenemo
Messages postés4Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention21 décembre 2006
-
20 déc. 2006 à 04:59
littlenemo
Messages postés4Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention21 décembre 2006
-
21 déc. 2006 à 17:58
Hello world !!
Un petit merci a tout ce qui me lirons et peut etre un grand a celui qui me donne ma reponce.
Alors je vous mets dans le bain:
Je doit coder un patron de list doublement chainée (comme dans list.h)
pour cela j'ai:
- Un template<typename T> representant la liste elle memme
- Un template<typename T> representant un element de la liste
Ce dernier (l'element) contient une valeur de type T et 2 pointeurs sur les elements precedent et suivant.
On arrive dans le vif du sujet:
Etant donne que perssonne a part le template de liste n'a besoin de trifouiller dans mon template d'element je veux rendre celui-ci entierement privé et donc rendre friend le template de la list.
Je l'ai fait comme ceci dans le template d'element:
template<typename> friend class DualLinkedList;
Maintenant je veut coder un operator<< pour ma liste voici ca declaration:
friend std::ostream& operator<< (std::ostream& os,const DualLinkedList<T>& l)
Et voila enfin la question:
Je ne peut dans cette operator acceder aux donnée membres du template de l'element. (Normale il ne fait pas partie de la list)
Donc: Comment rendre friend cette operator de la classe d'element ??
j'ai essaye ce genre de chose:
friend std::ostream& operator<< <>(std::ostream& , const DualLinkedList<T>& );
template<typename> friend std::ostream& operator<< <>(std::ostream& , const DualLinkedList& ); //avec ou sens le <>
Et d'autre ...
Pour info je suis sous linux et g++ 4
Bravo !!! et Merci tu est arrivé a me lire jusque ici, tu a gagné le petit merci, maintenant pour le grand ... je croise les dois.
Si pas assez clair, tu peux me demande des precisions.
PS: desolé je ne sait pas ecrire francais et comme j'ai pas un cerveau dualCore c'est encord pire quant je reflechie en memme temps
a++
PS2: Y'a pas un truc pour faire une mise en forme "code"? je trouve pas...
littlenemo
Messages postés4Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention21 décembre 2006 21 déc. 2006 à 17:58
Salut deja merci,
Bon alors c'est ce que j'avais essaye en premier. je m'etait planter dans mon copie colle pour le <> (en memme temps avec le nombre de ligne de test commenter qu'il y avait)
avec ca g++ me dit:
DualLinkedListElement.h:28: error: expected ‘,’ or ‘...’ before ‘<’ token
DualLinkedListElement.h:28: error: ISO C++ forbids declaration of ‘DualLinkedList’ with no type
C comme pour la declaration friend de la classe il me dit la memme chose si je met:
friend class DualLinkedList<T>;
au lieu de:
template<typename> friend class DualLinkedList;
C pour ca que jai essaye de faire dans la memme idée
template<typename> friend std::ostream& operator<<(std::ostream& , const DualLinkedList& );
Merci pour la ptite explication du <> j'etait tomber dessue sur le net et au point ou j'en etait ...