初学C++,定义单向链表类List,然后将两个有序链表合并,但总是提示有异常!

初学C++,定义单向链表类List,然后将两个有序链表合并,但总是提示有错误!!

链表节点类ListNode,链表类List,合并文件ListCombine

ListNode.h

 #define LISTNODE_H


template<class T> 
class ListNode
{
T data;
ListNode<T>* link;

public:
ListNode(): link(NULL) {}
ListNode(T value): link(NULL),data(value) {}
~ListNode() {};
void SetLink(ListNode<T>* next);
ListNode<T>* GetLink();
T& GetData();
};

List.h

#define LIST_H
#include"ListNode.h"

template<class T>
class List
{
ListNode<T>* head;
ListNode<T>* tail;


public:
List();
~List(){};
int GetCount ();
bool AddTail(T value);
bool InsertAt(int index,T value);
bool RemoveAt(int index);
bool RemoveTail();
T& GetAt(int index);

};

ListNode.cpp


List.cpp



ListCombine.cpp





编译,连接之后有如下错误


------解决方案--------------------
设置断点单步跟踪调试,是程序员必备技能之一。