Ho fatto una classe template lista e sto cercando di implementare l'overload dell'operatore <<, solo che mi da i seguenti errori (c++ builder)
Questo è il codice: (solo delle parti significative, sennò diventa lungo...codice:[ILINK32 Error] Error: Unresolved external 'operator <<(std::basic_ostream<char, std::char_traits<char> >&, const Lista<int>&)' referenced from C:\USERS\VINCENZO\DESKTOP\LISTAOOP\DEBUG\MAIN_LL_OOP.OBJ
Ma cosa sbaglio???codice:template <class T> class Lista{ friend ostream& operator << (ostream&,const Lista<T>&); friend istream& operator >> (istream&,Lista<T>&); friend Lista operator +(const Lista&,const Lista&); //non implementato ancora public: Lista(); Lista(const Lista&); ~Lista(); bool inserisciInTesta(const T&); bool inserisciInCoda(const T&); bool inserisciPostoI(const T&,int i); bool rimuoviInTesta(T&); bool rimuoviInCoda(T&); bool rimuoviPostoI(T&,int i); bool getInfoPostoI(T&,int i) const; int getDim() const; bool operator ==(const Lista&); void reset(); private: Nodo<T> *testa; int dim; }; template <class T> ostream& operator <<(ostream& out,const Lista<T>& x) { T valore; for(int i=1;i<=x.getDim();i++) { x.getInfoPostoI(valore,i); out<<valore<<' '; } return out; }![]()
Non riesco a capire perchè il linker non trova la funzione di overload dell'operatore <<

Rispondi quotando