linker error bei template klasse
-
Löst das mein Problem?
Die Bibliothek muss ich eigentlich nur für das "NULL" Makro inkludieren. Scheint ne Editorspezifische Sache zu sein
-
Hi, die Fehlermeldungen sind komisch, da die Kon- und Destruktoren als einziges richtig sind.
Die Definition muss bei einem Template mit in den Header, bzw. im Header inkludiert werden, bzw. EXPORT verwenden sofern das dein Kompiler kann.
Das statische count muss auch definiert werden.
Diese Kurzform lässt sich kompilieren:template <typename T> class list { private: static int count; T pos; list* next; public: list(T value = 0) :pos(value) { count++; } ~list() { if(next != NULL) delete next; } }; template <typename T> T list<T>::count;
-
Danke schonmal, aber ich habe die sachen in einer cpp datei definiert, die hier:
#include "list.h"
template <class T> int list<T>::count = 0;
template <class T> void list<T>::setT(T value) { pos = value; } template <class T> T list<T>::getT(void) { return pos; } template <class T> int list<T>::getcount(void) { return count; } template <class T> void list<T>::add(T value) { this -> next = new list(value); } template <class T> void list<T>::setnext(list* nextitem) { this -> next = nextitem; }geht das so nicht?
-
Nee, das geht nicht. Warum kannst du hier nachlesen (bei den Links am Ende).
-
vielen vielen Dank, ich probiers dann mal so
-
Hallo, ich habe es jetzt wie folgt geschrieben
#include <cstdlib> template <class T> class list { private: static int count; T pos; list* next; public: list(T value = 0) :pos(value) { this -> next = NULL; count++; } ~list() { if(next != NULL) delete next; } void setT(T value) { pos = value; } T getT(void) { return pos; } int getcount(void) { return count; } void add(T value) { next = new list(value); } void setnext(list* nextitem) { next = nextitem; } list* getnext(void) { return next; } }; template <typename T> T list<T>::count = 0;Kriege aber immernoch den gleichen Fehler?! Ich benutze Dev C++ liegts vielleicht daran? Hab schon gehört, dass der schlecht sein soll(bzw. veraltet)
-
Kingcools2 schrieb:
Kriege aber immernoch den gleichen Fehler?! Ich benutze Dev C++ liegts vielleicht daran? Hab schon gehört, dass der schlecht sein soll(bzw. veraltet)
Möglicherweise liegts daran, ja. Gibts einen speziellen Grund dass du den benutzt?
-
Eigentlich nur wegen seiner Schlichtheit und wegen der schnicken Importfunktion(erspart einem das Einrichten für diverse Bibliotheken z.B: OpenGl oder Allegro). Will halt programmieren und nicht Jahre erstmal den Editor verstehen. Wäre jetzt aber kein Beinbruch nen anderen zu nehmen.
Ich probier das dann mal, wenns nicht geht schreib ich heute Nacht nochmal rein^^
Danke sehr
-
Er kann ja ruhig Dev C++ nutzen, solange er einen vernünftigen Compiler benutzt. Allerdings ist die MingW Version, die bei Dev C++ (auch bei Code::Blocks) mitgeliefert wird, hoffnungslos veraltet und sollte nicht mehr benutzt werden.
-
Deshalb das neuere wxDev-C++ nutzen.

-
Ok, hab jetzt den wxdev ausprobiert, und nun kompiliert der Code, der Compiler war also veraltet, danke schön, kann zu