undefinied reference to xxxx



  • Hallo zusammen.

    Ich habe folgende Funktion in meinem Header definiert:

    class SRPacketReader
    {
    public:
        SRPacketReader(SRPacket *DataBuffer);
        SRPacketReader(unsigned char *DataBuffer);
        template <class T>
        T Read();
        char *ReadString();
    
    private:
     /*.... /*
    }
    

    In der cpp Datei sieht die Funktion Read(); folgendermassen aus:

    template <class T>
    T SRPacketReader::Read(){
        T myVar;
        outStream >> myVar;
        return myVar;
    }
    

    main.cpp:

    SRPacketReader *reader;
                reader = new SRPacketReader(incData->Data);
                FileID = reader->Read<quint16>();
    

    Jedesmal wenn ich nun die Funktion read aufrufen möchte, erscheint der Compiler-Fehler: "undefined reference to 'unsigned short SRPacketReader::Read<unsigned short>()'".

    Warum das? Habe ich ein Brett vor dem Kopf und einfach etwas vergessen, oder spuckt das Ganze?

    Gruess 🙂


  • Mod



  • Oder auch http://www.c-plusplus.net/forum/246875 - der Thread heißt genau so wie dieser hier.
    Was heißt das für dich? Erst FAQ und mit wichtig gekennzeichnete Threads lesen, dann fragen. Löst viele Probleme und ist vor allem schneller, als hier auf eine Antwort warten zu müssen.
    Die Variante "einfach mal fragen" ist zwar deutlich bequemer, wirft aber kein besonders gutes Licht auf den Fragensteller.



  • Hallo,

    Sorry - der Hunger hat mich wohl gedrängt. 😉
    Vielen dank euch beiden - ich habe die Methoden nun als Workaround direkt im Header implementiert.

    gruss



  • hmmm.... schrieb:

    Vielen dank euch beiden - ich habe die Methoden nun als Workaround direkt im Header implementiert.

    Sieh es nicht als Workaround, sondern als übliche Praxis bei Templates.


Anmelden zum Antworten