ich bin gerade dabei eine verkettete Liste zu schreiben und dachte mir, dafür eine Template-Klasse namens Element zu schreiben. Beim Instanzieren bekomme ich jedoch einen Fehler, der mir einfach nichts sagt:
Code:
// Test.cpp: #include "Element.h"
int main() { Element<int> *x = new Element<int>(10); // << dies verursacht die Fehlermeldung
template <class T> class Element { private: T m_value;
public: Element(T value); };
#endif // _ELEMENT_INCLUDED_
// Element.cpp: template <class T> class Element { private: T m_value;
public: Element(T value) { m_value = value; } };
Die Fehlermeldung die mir dann das MS VS 7 auswirft ist:
Zitat:
Lexer error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall Element<int>::Element<int>(int)" (??0?$Element@H@@QAE@H@Z)', verwiesen in Funktion '_main'
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
Hallo, die Definition von Templates muss immer mit in den Header sonst gibt es Probleme. Es gibt da zwar noch nen Schlüsselwort dass die Aufteilung in h und cpp Dateien unterstützen soll, das wird aber (glaube ich) von keinem Compiler unterstützt.