Methoden von Templateklassen nur in der .h?
-
Hi Leute,
Ich hab hier ne Templateklasse. Diese Klasse hab ich ganz normal auf ne .h- und ne .cpp-Datei aufgeteilt. Wenn ich den Code kompiliere, dann bekomm ich linkerfehler: Nicht aufgelöste externe Symbole für jede Funktion dieser Klasse.
Müssen die Methodendefinitionen von Templateklassen in der selben Datei, wie die Klassendefinition stehen? Oder ist das nur beim VC++ (version 7.1) so?
-
Das ist leider bei fast jedem Compiler so
Was man dann oft macht, wäre für den Template-Kram, noch einmal eine extra-Datei .tcc oder so zu schreiben, die man in den Header-File dann einbindet.
[ Dieser Beitrag wurde am 19.06.2003 um 19:52 Uhr von DrGreenthumb editiert. ]
-
Wie oft hatten wir das schon? Ja, geht momentan nur im Header oder in einer seperaten Datei, die du dann in den Header includierst.
-
das heisst, templateklassen kann man vergessen
Wenn ich die cpp in die h einbind bekomm ich ziemlich viele fehler
-
Original erstellt von dEUs:
Wenn ich die cpp in die h einbind bekomm ich ziemlich viele fehlerNaja, dann machst du irgendwas falsch.
In die klasse.h kommt die Klassendefinition und ein #include "klasse.tcc". In klasse.tcc stehen dann die Methoden, wobei hier natürlich nicht nochmal klasse.h eingebunden werden darf.
-
jo, ich hab was falshc gemacht, aber nix so grundlegendes, wie du dachtest
jetzt tuts