I have created a linked list which utilizes templates in order to become a generic linked list. Now I am trying to initiliaze it within a seperate class. The code is meant for a game. The class Enemy includes a linked list in order to manage the bullets which where fired by the enemy. The code is as follows: class Enemy : public qe { public: linkedList<bullet> *bullets; Enemy(); Enemy(int setTier); Mat12 mat; void draw(); void update(); void zap(); void shoot(int number); void diagRect(float boxHeight,float boxWidth, float positionX, float positionY); int bulletCount; int bulletTimer; float x; //X coordinate float y; //Y coordinate float velocityX; //Velocity up, down float height; //Paddle Height float width; //Paddle Width float velocity; float velocityY; //Velocity right, left int tier; private: Its a bit of a mess as far as definitions go (I know I have a matrix along with x and y values lol), but one thing is that it doesn't seem to want me to initialize the linked list. The compiler doesn't seem to even know exactly what I'm trying to do. The error it spits out is: error C2143: syntax error : missing ';' before '<' missing type specifier - int assumed. Note: C++ does not support default-int which indicate that the syntax is being misinterpreted. I was wondering if it is possible to initialize things that deal with templates within a new class or do I have a miss understanding of what templates are capable of doing and what scope they relate to? template <typename unassigned> class linkedList { typedef struct listNode { unassigned data; listNode *nextNode; }; public: listNode *beginNode; listNode *endNode; linkedList(); void addNode(listNode *&startNode); void zapNode(int position); unassigned* getNode(int position); }; template <typename unassigned> linkedList<unassigned>::linkedList() { beginNode = new listNode(); beginNode = NULL; } template <typename unassigned> void linkedList<unassigned>::addNode(listNode *&startNode) { int counter = 0; listNode *temp, *temp2; temp = new listNode(); if (startNode == NULL) { startNode = temp; startNode->nextNode = NULL; endNode = startNode; endNode->nextNode = NULL; } else { endNode->nextNode = temp; endNode = endNode->nextNode; } } template <typename unassigned> unassigned* linkedList<unassigned>::getNode(int position) { listNode *temp; listNode *traverse; if (beginNode != NULL) { int counter = 0; temp = beginNode; while (counter < position The struct is within the same header file.