Linker Error
-
Hi, ich habe da ein Problem beim Linken

Bin noch 'n Anfänger und probiere gerade was mit templates
Hab Borland C++ Compiler 5.5Das ist der Quelltext
//test0003.h template<class T1,class T2,class T3,class T4,class T5> class Beschreibung { private: T1 b1; T2 b2; T3 b3; T4 b4; T5 b5; public: Beschreibung() {} void init(T1 _b1,T2 _b2,T3 _b3,T4 _b4,T5 _b5); void zeige(void); };//test0003.cpp #include<iostream> #include"test0003.h" using namespace std; template<class T1,class T2,class T3,class T4,class T5> void Beschreibung<T1,T2,T3,T4,T5>::init(T1 _b1,T2 _b2,T3 _b3,T4 _b4,T5 _b5) { b1=_b1; b2=_b2; b3=_b3; b4=_b4; b5=_b5; } template<class T1,class T2,class T3,class T4,class T5> void Beschreibung<T1,T2,T3,T4,T5>::zeige(void) { cout<<b1<<'\n'<<b2<<'\n'<<b3<<'\n'<<b4<<'\n'<<b5<<endl; }//test0003test.cpp #include<iostream> #include"test0003.h" using namespace std; int main() { Beschreibung<char *,char *,int,bool,float> G11; Beschreibung<char *,char *,int,bool,float> G15; G11.init("Logitech G11","Schwarz",96,true,59.95F); G15.init("Logitech G15","Silber",108,false,79.95F); G11.zeige(); G15.zeige(); return(0); }Kommandozeile: bcc32 test0003test.cpp test0003.cpp
Bekomme Fehlermeldung:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test0003test.cpp:
test0003.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'Beschreibung<char *, char *, int, bool, float>::init(char *, char *, int, bool, float)' referenced from C:\K\K\TEST0003TEST.OBJ
Error: Unresolved external 'Beschreibung<char *, char *, int, bool, float>::zeige()' referenced from C:\K\K\TEST0003TEST.OBJProzess beendet mit Exit-Code 1
Kann mir jemand helfen?
-
Hast du schon mal in den FAQ nachgeschaut?

-
Kurzfassung: Template-Funktionen mußt du im Header definieren (der Compiler braucht Definition UND Instanziierung, um etwas anlegen zu können - export wird bisher kaum unterstützt).