This code is having multiple error .
Most of the places Template wrong declaration of template class like
Iterator<T>::Iterator(Node* current, List* ourList) should be like
Iterator<T>::Iterator(Node<T>* current, List<T>* ourList)
and Node<T>* new_node = new Node(data); should be like
Node<T>* new_node = new Node<T>(data);