Kleines Template Problem
-
Hallo Folks,
hier mein Problemcode:
#include <vector> template <class T> class myClass { private: std::vector<T>* m_vector; public: Vector(void); ~Vector(void); // weitere Methoden }; Vector::Vector(void) { m_vector = new std::vector<T>; // Error C2955:'Vector' :use of class template requires template argument list } Vector::~Vector(void) { delete m_vector; // Error C2955:'Vector' :use of class template requires template argument list }Warum meckert der Compiler, wenn ich die Klasse Instanziere, übergebe ich doch T und kann damit den std::vector<T> Konstruktor füttern?!
Schonmal Danke im voraus!
- Tobi
-
Tsssccchhhullldigung, bin bisschen durch den Wind. Jetzt klappts:
Vector<T>::Vector(void) { //... } Vector<T>::~Vector(void) { //... }
-
komisch ... müsste nähmlich Vector durch myClass ersetzt werden.
-
(D)Evil schrieb:
komisch ... müsste nähmlich Vector durch myClass ersetzt werden.
oder umgekehrt

Zudem sollte es eigentlich auch so aussehen:
template<class T> Vector<T>::Vector(void) { //... } template<class T> Vector<T>::~Vector(void) { //... }
-
#include <vector> template <class T> class vector { private: std::vector<T>* m_vector; public: vector() { m_vector = new std::vector<T>; ~vector() { delete m_vector; } };...
-
@Tobias W
Mal so nebenbei, ein std::vector Objekt extra noch dynamisch zu instanzieren, ist ziemlich überflüssig. Dynamische Instanzen solltest du wirklich nur verwenden, wenn sie auch sinnvoll sind. Ansonsten reichen automatische Instanzen vollkommen aus.