Templates C++

Diskutiere Templates C++ im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hi Progger-Menschen, Ich progge gerade an einem Tool und möchte eine Klasse mit Template proggen. Erhalte allerdings bei der Compilierung die...

  1. polka

    polka Mitglied

    Dabei seit:
    16.07.2006
    Beiträge:
    33
    Zustimmungen:
    0
    Hi Progger-Menschen,

    Ich progge gerade an einem Tool und möchte eine Klasse mit Template proggen.
    Erhalte allerdings bei der Compilierung die Fehlermeldung:
    /home/polka/Documents/Projects/entropie_final/main.cpp:13: undefined reference to `cSTREAM<short>::cSTREAM()'
    /home/polka/Documents/Projects/entropie_final/main.cpp:16: undefined reference to `cSTREAM<short>::Initialize(char const*)'
    /home/polka/Documents/Projects/entropie_final/main.cpp:20: undefined reference to `cSTREAM<short>::Begin()'
    /home/polka/Documents/Projects/entropie_final/main.cpp:25: undefined reference to `cSTREAM<short>::Update()'
    /home/polka/Documents/Projects/entropie_final/main.cpp:26: undefined reference to `cSTREAM<short>::End()'
    /home/polka/Documents/Projects/entropie_final/main.cpp:28: undefined reference to `cSTREAM<short>::~cSTREAM()'
    /home/polka/Documents/Projects/entropie_final/main.cpp:28: undefined reference to `cSTREAM<short>::~cSTREAM()'
    /tmp/cc7Nerco.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
    /tmp/ccOAd82y.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    /usr/lib/gcc/i586-suse-linux/4.1.0/../../../../i586-suse-linux/bin/ld: link errors found, deleting executable `entro'
    collect2: ld returned 1 exit status

    Weiss jemand warum das passiert, ich habe alle Vorschriften befolgt...

    Der SourceCode:
    *.h

    template <class T>
    class cSTREAM {
    public:
    cSTREAM(void);
    ~cSTREAM(void);
    public:
    bool Initialize(const char*);
    bool Begin(void);
    void Update(void);
    void End(void);
    private:
    FILE* File;
    unsigned long Size;
    T* pStart;
    T* pCurrent;
    T* pStop;
    T* pEnd;
    };

    *.cpp

    template <class T>
    cSTREAM<T>::cSTREAM(void) {
    File = NULL;
    Size = cSize;
    pStart = pCurrent = pStop = pEnd = NULL;
    }

    template <class T>
    cSTREAM<T>::~cSTREAM(void) {
    if(pStart != NULL)
    delete[] pStart;
    if(File != NULL)
    fclose(File);
    }

    template <class T>
    bool cSTREAM<T>::Initialize(const char* filename) {
    if((File = fopen(filename,"r")) == NULL)
    return false;

    Size = cSize;
    pStart = (T*) new T[Size+1];
    pCurrent = pStart;
    pEnd = pStart + Size - 1;
    *(pEnd+1) = (T)NULL;

    return true;
    }

    template <class T>
    bool cSTREAM<T>::Begin(void) {
    fseek(File,0,SEEK_SET);
    unsigned long size = fread(pStart,sizeof(T),Size,File);
    pStop = pStart + size - 1;
    pCurrent = pStart;
    return (size > 0);
    }

    template <class T>
    void cSTREAM<T>::Update(void) {
    fseek(File,pCurrent - pEnd,SEEK_CUR);
    unsigned long size = fread(pStart,sizeof(T),Size,File);
    pStop = pStart + size - 1;
    pCurrent = pStart;
    Test(pStart);
    }

    template <class T>
    void cSTREAM<T>::End(void) {
    pCurrent = NULL;
    pStop = NULL;
    }

    Bitte um Help...
     
  2. heady

    heady Routinier

    Dabei seit:
    13.12.2005
    Beiträge:
    424
    Zustimmungen:
    0
    Ort:
    im Herzen Europas
    probier mal aus, dass du die funktionen direkt in die klasse hinen schreibst
     
  3. #3 skopionmaster, 27.10.2006
    skopionmaster

    skopionmaster Eroberer

    Dabei seit:
    15.08.2004
    Beiträge:
    50
    Zustimmungen:
    0
    Ort:
    Stadtroda
    Moin,

    siehe http://gcc.gnu.org/bugs.html#known:

    MFG skop
     
  4. polka

    polka Mitglied

    Dabei seit:
    16.07.2006
    Beiträge:
    33
    Zustimmungen:
    0
    Ach ich habe den Fehler gefunden, beim compilieren gab ich die falschen files an... aber danke
     
Thema:

Templates C++

Die Seite wird geladen...

Templates C++ - Ähnliche Themen

  1. Qubes R2 unterstützt verschiedene Templates und Windows AppVMs

    Qubes R2 unterstützt verschiedene Templates und Windows AppVMs: Nach etwa zweijähriger Enwicklungszeit hat Joanna Rutkowska, die Gründerin der auf IT-Sicherheit spezialisierten Firma Invisible Things Lab, die...
  2. kde4.2 templates

    kde4.2 templates: Hallo Ich hatte kde 4.1 mit prefix installiert. Dann unter /usr/kde/.../sg'hare/Templates je eine leere Open Document Tabelle.ods Open Document...
  3. CPP Pointer Templates auf Klassen

    CPP Pointer Templates auf Klassen: Hallo zusammen Ich habe eine OpenGL Initialisierungsklasse gebastelt. Dazu kommen jetzt noch ein paar Klassen für Primitives (z.B. Quader)...