VC++ und Templates - Linkerproblem
-
Tag, ich hab leider auch ein Problem mit Templates, und ich kann garnicht
verstehen weshalb:Unter dem Visual Studio von Microsoft mache ich folgendes:
CListe.h ---------------------------------------------
template <class T> class CListe{
T *elemente;
public:
CListe();
void del_car(int index);
void add_car(T *car);
T get_car(int index);
};CListe.cpp --------------------------------------------
#include "CListe.h"int cnt;
template <class T> void CListe<T>::del_car(int index){
// todo...
}template <class T> T CListe<T>::get_car(int index){
return elemente[index];
}template <class T> void CListe<T>::add_car(T *car){
cnt++;
elemente[cnt] = *car;
}template <class T> CListe<T>::CListe(){
cnt = 0;
//elemente = (*T) calloc(10, sizeof(T));
}Main ---------------------------
#include "CListe.h"
...
CListe <int> intliste;
...-------
ich bekomme einen sehr eigenartigen fehler, den ich nicht ganz
nachvollziehen kann:simulator002.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public:
__thiscall CListe<int>::CListe<int>(void)" (??0?$CListe@H@@QAE@XZ)
Debug/simulator002.exe : fatal error LNK1120: 1 unaufgeloeste externe
Verweise
Fehler beim Ausführen von link.exe.
simulator002.exe - 2 Fehler, 0 Warnung(en)Ich habe schon in diversen büchern nachgesehen, und die Deklaration von
Templates scheint so zu gehen, deshalb kann ich mir den fehler nicht
erklären. Muss ich vielleicht irgendwas am compiler von MS umstellen?Mfg
Malte Nuhn
-
vielleicht
[cpp]
template <class T> CListe<T>::CListe**<T>**(){[/cpp]
?
-
*Kopfschüttel*
Malte hat wahrscheinlich noch nie Quellcode von Templates angeschaut, sonst wäre aufgefallen, dass TEMPLATES noch NIE in Header und Cpp aufgeteilt wurden!
-
Ich dachte, das wäre nur bei Templatefunktionen so ...
-
Templates sind halt Templates, egal ob Funktionen oder Klassen