Вы сделали
typedef DoublyLinkedNode<int> numListNode;
но в следующих двух строках
DoublyLinkedNode *listHead = NULL;
DoublyLinkedNode *listTail = NULL;
вы забыли использовать этот новый тип numListNode
. Измените их на
numListNode *listHead = NULL;
numListNode *listTail = NULL;
Поскольку вы не можете использовать шаблонный класс без аргумента шаблона, и вы попытались сделать DoublyLinkedNode *listHead
, когда это должно было быть DoublyLinkedNode<something> *listHead
. Поэтому, если вы используете typedef
, который задает аргумент шаблона (как int
), он работает.