This "getNodeAt(int)" method that iterates through the list and return a pointer to the node at the position entered on the parameter.
Here is the implementation signature:
This -> node* getNodeAt(int); should be -> Node* getNodeAt(int);
EDIT: Also, make sure you put a semicolon at the end of you class definition, and have all the template stuff (declarations and implementation) inside a header.
EDIT 2: Ok, I found it. You have to use the typename keyword: