我创建了一个结构体以及一个模板类,用于实现单链表的功能:
struct Node {
T data;
struct Node<T> *next;
};
template<class T>
class LinkList {
private:
Node<T> *head;
public:
LinkList() {
head = new Node<T>;
head->next = NULL;
}
LinkList(T a[], int n);
~LinkList();
void insert(int i, T x);
T Delete(int i);
Node<T> *get(int i);
int locate(T x);
int length();
void print();
};
并且在主函数中创建了一个数组,准备用构造函数去给单链表赋值:
int main() {
int arr[20] = {1, 2, 3, 4};
LinkList<int> list(arr, 20);
list.LinkList();
list.LinkList(arr, 20);
list.insert(5, 5);
list.get(4);
list.locate(2);
list.print();
}
此时编译器却告诉,主函数中出现了对构造函数的非法调用错误:
请问为什么会发生这样的编译错误,又该如何解决呢?