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 fehler 😞

    Naja, 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 🙂


Anmelden zum Antworten