12. februar 2002 - 18:40
Der er
2 kommentarer og 1 løsning
overload af <<
template <class T> ostream& operator<< (ostream &os, const T &t) { os << "Test" << endl; return os; } giver fejlen: error C2667: '<<' : none of 2 overload have a best conversion jeg har deklereret den som en fri funktion. hvorfor fejler det?
Annonceindlæg fra Kommando
12. februar 2002 - 22:54
#1
Min compiler siger operatoren ikke tager to parametere. error C2804: binary 'operator <<' has too many parameters class Test { public: template <class T> ostream& operator<< (ostream &os, const T &t) { os << "Test" << endl; return os; } }; Skal du ikke fjerne template tingen og kun bruge streamen ? ostream& operator<< (ostream &os) { os << "Test" << endl; return os; } så når man klader: Test t; ostream Object( pStreamBuf ); Object << t; Bliver indholdet af t streamet ned i Object ?!?
13. februar 2002 - 15:09
#3
ikke helt, men det er ikke T jeg skal have skreven ud (det er en container klasse jeg har lavet) men containeren.. altså: template <class T> ostream& operator<< (ostream &os, const Vektor<T> &vect) { ^^^^^^^^^ os << "Test" << endl; return os; } men tak for hjælpen alligevel, det var nok til at guide mig videre.