Een gelinkte lijst (een template) kan die eigenlijk een operator<< hebben? Want het lukt mij niet de operator<< te implementeren voor een template gelinkte lijst. Zodat ik dus een lijst via de << operator kan afprinten.
Mijn lijst is van de vorm:
Indien ik dan de operator<< zelf wil schrijven en gebruiken dan kan ik onmogelijk daarin een knoop* enzo declareren om de lijst te overlopen.
Maar een friend die kan toch gewoon aan de private variabelen? Nu denk ik dat dit komt doordat die struct knoop niet door de friend kan gebruikt worden, echter hoe los ik dit dan proper op?
Mijn lijst is van de vorm:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
| template <class T> class Lijst { private: struct knoop { T waarde; knoop* next; knoop(T x) {waarde=x; next=NULL;} }; knoop* head; public: /*KNIP*/ friend std::ostream& operator << (std::ostream& os,Lijst<T> &l); |
Indien ik dan de operator<< zelf wil schrijven en gebruiken dan kan ik onmogelijk daarin een knoop* enzo declareren om de lijst te overlopen.
Maar een friend die kan toch gewoon aan de private variabelen? Nu denk ik dat dit komt doordat die struct knoop niet door de friend kan gebruikt worden, echter hoe los ik dit dan proper op?