Probleme bei Operatorenüberladung
-
Hallo
Ich versuche mir gereade eine kleine Logfileklasse zu schreiben und dabei taucht folgendes Problem auf: Ich würde gerne per << in das Logfile schreiben und zwar Zahlen und strings, also dachte ich mir, dass ich einen << Operator schreibe und zwar als template Memberfunktion damit er verschiedene`Datentypen aufnehmen kann. Diese wollte ich dann per boost::lexical_cast zu strings verwandeln und in die Datei schreiben, aber mein Linker meckert immer. Zuerst die Funktion:
template<class Te> void chrische::LogFile::operator <<(Te TempText) { FileToWriteIn<<lexical_cast<std::string>(TempText); }Dann die Fehlermeldung:
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall chrische::LogFile::operator<<<char const *>(char const *)" (??$?6PBD@LogFile@chrische@@QAEXPBD@Z) referenced in function _wmain LogFileTest.obj
Vielen Dank für eure Hilfe
chrische
-
Steht die Definition in nem Header?
-
Hallo
Ich verhaue bis heute die Begriffe.
Im Header steht folgendes:template<class Te> void operator <<(Te TempText);und in der cpp:
template<class Te> void chrische::LogFile::operator <<(Te TempText) { FileToWriteIn<<lexical_cast<std::string>(TempText); }chrische
-
Das muss bei Templates alles in den Header.
-
Hallo
Danke das hatte ich leider vergessen.
chrische