Templates C++

Dieses Thema im Forum "C/C++" wurde erstellt von polka, 27.10.2006.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. 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
     
  4. #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
     
  5. 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
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
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)...