Problem mit templates
-
der folgende code
template<class T>
class test
{ private:
T OneItem;
vector<T> items;
.....
};bringt die Fehlermeldung "Typname erwartet" in der vector Zeile.
Weiß jemand wo das problem liegt?
-
Verschoben nach "C++".
-
Hallo,
ist <vector> inkludiert und/oder der Name global verfügbar (typedef, using-deklaration, using-direktive)?
-
Irre ich mich jetzt villeicht völlig, aber soweit ich weiß erwartet vector<T> doch bei T einen Typnamen.
Da darf man net einfach 'nen Template verwenden, da ist ja schon eins vorgegeben, dass man an dieser Stelle füllen muss!
oder spinne ich jetzt total? X-(MfG MAV
-
Mis2Com: T ist doch ein Typname, was soll da jetzt ein template<typename T> für einen Unterschied machen?
edit: Ich habe Deinen Post nochmal gelesen, ich glaube ich habe einfach nicht verstanden was Du ursprünglich meintest, aber der Code da oben passt an und für sich IMO.
[ Dieser Beitrag wurde am 17.04.2003 um 00:35 Uhr von nman editiert. ]
-
hm. ich verstehe auch nicht ganz, (das ist eine umschreibung für 'gar nicht'), was du meinst...
und zwischen template <class X> oder template <typename X> besteht ein unterschied von genau 3 (Buchstaben)ich denk mir mal, dass "vector" nicht bekannt ist.
-
Irre ich mich jetzt villeicht völlig
Ja
-
Ja meine Doofheit, tatsächlich vector nicht bekannt.
#include <vector> war zwar vorhanden, aber es geht erst mit
#include <vector.h>
warum weiß ich auch nicht.
-
veraltet. besorg die ne neuere version.
oder nicht veraltet und folgendes sollte funktionieren#include <vector> template<class T> class test { private: T OneItem; std::vector<T> items; ...... };
-
Es funktioniert auch mit <vector>, dann mußt Du aber noch "using namespace std" mit schreiben.
MfG
-
in einen header tut man gar nicht gerne eine using direktive oder auch eine einfache using deklaration verwenden
kommt dann oft zu "namenskonflikten"
-
Original erstellt von davie:
in einen header tut man gar nicht gerne eine using direktive oder auch eine einfache using deklaration verwenden
kommt dann oft zu "namenskonflikten"Sorry da hab ich zu schnell gelesen!
MfG