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 tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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 ?!?
12. februar 2002 - 22:58
#2
Glem lige: Skal du ikke fjerne template tingen og kun bruge streamen ? ostream& operator<< (ostream &os) { os << "Test" << endl; return os; } Sad og sov halvt :-)
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.
Kurser inden for grundlæggende programmering