Hallo,
ich habe ein Problem mit der bekannten Linker Meldung, dass es ein nicht aufgelöstes externes Symbol gibt.
Ich habe folgende Klasse in einer extra Datei:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
template <typename _type>
class CListElement
{
private:
public:
CListElement();
CListElement(_type value);
~CListElement();
_type iValue;
CListElement* pNext;
};
|
Die Implementierung des Konstruktor sieht z.B. so aus:
|
Quellcode
|
1
2
3
4
5
|
template <typename _type>
CListElement<_type>::CListElement()
{
pNext = 0;
}
|
Wenn ich nun die Template Klasse ausprägen will, in der main funktion z.B. folgendes mache:
|
Quellcode
|
1
|
CListElement<int> elem;
|
kommt dieser Fehler:
VerketteteListe error LNK2019: Nicht aufgeloestes externes Symbol "public: __thiscall CListElement<int>::~CListElement<int>(void)" (??1?$CListElement@H@@QAE@XZ), verwiesen in Funktion _main
sowie:
VerketteteListe error LNK2019: Nicht aufgeloestes externes Symbol "public: __thiscall CListElement<int>::CListElement<int>(void)" (??0?$CListElement@H@@QAE@XZ), verwiesen in Funktion _main
(also einmal für den Konstruktor und einmal für den Dekonstruktor)
Die Header Datei habe ich korrekt in die main-datei eingebunden. Ich weiss einfach nicht, warum diese Linker Meldung kommt, und ich hoffe Ihr könnt mir weiterhelfen.
Vielen Dank
MfG,
Timo