template class mit vector



  • Hallo,
    ich habe folgendes Verwalter Template, dieses soll ein vector bereitstellen, der bestimmte Objekte einer anderen Klasse halten und "verwalten" kann.

    Ich habe Probleme bei mit dem Compiler und weiß nicht was genau falsch ist.

    template<typename T>
    class Verwaltung
    {
    private:
    std::vector<T> objekte;

    protected:
    int getPos(int id);

    public:
    Verwaltung();
    virtual ~Verwaltung();

    void add(T& n);

    bool exist(int id);
    ...
    };

    template <class T>
    void EntityVerwaltung<T>::add(T& m){
    objekte.push_back(m);
    }

    int main()
    {
    Arbeiter a1("Maik");
    Verwaltung<Arbeiter> arbeiter;
    mit.add(m1);
    }

    Compiler meldet
    linker command failed with exit code 1 (use -v to see invocation)
    (Xcode)

    Hoffe jemand kann mir helfen.



  • Wieso lesen sich so wenige Leute die verdammten Sticky-Threads durch? Es gibt einen Grund, warum die als "Wichtig" markiert sind.

    Und deine Frage lässt sich mit einer einfachen Google-Suche nach c++ template code header beantworten. Interface und Code müssen in C++ zusammenliegen, oder zumindest dem Compiler zur Kompilierzeit verfügbar sein.

    EDIT: Überhaupt lässt sich der Code auch sonst nicht kompilieren. <vector> wird nicht eingebunden, EntityVerwaltung ist nicht bekannt, und woher der Typ Arbeiter kommt, wissen wir beide nicht. Auch nicht, wie a1 plötzlich zu m1 wird.

    Und wenn ich dann all diese blöden Fehler fixe (was sowieso bescheuert ist, weil ich jetzt noch Annahmen von dem, was du uns nicht zeigst, treffen muss), dann erst bekomm ich das, was du wahrscheinlich meinst - nämlich, dass deinem Template die Implementierung in der TU fehlt.

    Deswegen woher die Stickys lesen. Reduziertes, kompilierbares Beispiel. Menschenskinners.



  • Komplette Fehlermeldung!


Anmelden zum Antworten