This is the code wrote inOP C++ ! I don't know what error it has ? please help me !

Code:#include <iostream.h> template <class T> //define struct link list struct Node { T data; Node<T>* link; }; template <class T> //class link list class dslk { private: Node<T>* head; public: dslk(); ~dslk(); void addhead(T); //add to head void print(); }; template <class T> dslk<T>::dslk() { head = NULL; } template <class T> dslk<T>::~dslk(){} template <class T> dslk<T>::addhead(T key) { Node<T>* NEW; NEW = new Node<T>; NEW->data = key; NEW->link = head; head = NEW; } template <class T> dslk<T>::print() { Node<T>* p = head; cout << "Cac phan tu trong danh sach la : "; while (p) { cout << p->data << " "; p = p->link; } } void main(void) { dslk<int> a; // create a a.addhead(1); a.addhead(2); a.addhead(3); a.print(); }