Template-Problem (Syntaxfehler)
-
Hallo,
ich versuche mir ein kleines Template zu schreiben, komme aber irgendwie nicht weiter.
kleiner auszug aus dem code:template <class T> class cMesh { protected: unsigned short iVertices; // Anzahl Vertices; T *pVertices; // Zeiger auf ertexDaten public: cMesh(); void allocMem(unsigned short iVertices); }; template <class T> void cMesh<T>::allocMem(unsigned short iVertices) { // Blahhh } cMesh <float> oMesh; oMesh.allocMem(100); // <<-- Hier gibts den Fehler (error C2143: Syntaxfehler: Es fehlt ';' vor '.')was mache ich falsch? komme hier nicht weiter trotz googeln, sämtlichen tutorials etc.
hab schon alles mögliche probiert; ist aber mittl. nur noch raten
-
Steht das so in deiner Datei? Dann dürfte es ein Problem damit geben, daß du außerhalb von Funktionen keine Anweisungen stehen haben darfst - der Ausdruck
oMesh.allocMem(100);ist eine Anweisung und darf deshalb nur in einer Funktion auftauchen.Wenn du den Mesh direkt beim Anlegen initialisieren willst, geht das nur innerhalb des Ctors:
template<typename T> class cMesh { ... public: cMesh(unsigned short iVert) { allocMem(iVert); } ... };
-
oMesh.allocMem(100);ist eine Anweisung und muß in einer Funktion stehen:
void f() { cMesh <float> oMesh; oMesh.allocMem(100); }Dann geht es.
-
vielen danke an euch.
wie war das mit dem wald und bäumen? *g*
wollt "nur schnell" das template testen. *g