Templates



  • Hallo,

    ich habe ein File aufgabe_3.cpp, das meine main() enthält:

    #include "aufgabe_3_2.cpp"
    ...
    int main(int argv, char* argc[])  {
        ...
        return 0;
        ...
    }
    

    und ein File aufgabe_3.h, das eine Template- Klasse enthält:

    template<class T, class T2> class Graph {
        ...
        public:
            void insVertex(Vertex<T>* vertex) {
            }
        ...
    }
    

    Die Methode insVertex soll jetzt in einem File aufgabe_3_2.cpp erst implementiert sein. Dieses File sieht ugf. so aus:

    #include "aufgabe_3.h"
    ...
    template <class T, class T2> void Graph<T, T2>::insVertex(Vertex<T>* vertex) {
        ...
    }
    

    Da kommt dann aber immer der Fehler "template function has already been defined". Was muss ich da machen?

    Danke schon mal,

    Marco



  • void insVertex(Vertex<T>* vertex) { 
            }
    

    mach das mal zu einer reinen Deklaration , dh, anstatt den geschweiften Klammern ein ;



  • Eigentlich gehört die Definition der Funktion *nur* in den Header, es sei denn, du verwendest export und einen exotischen Compiler.


Anmelden zum Antworten