我没有系统的学过c++,现在想使用类模板这个特性,但编译不通过,好像使用不了头文件,麻烦大家帮忙看看,下面是部分代码
报错内容
error C2065: “LinkList”: 未声明的标识符
error C2062: 意外的类型“int”
error C2065: “ll”: 未声明的标识符
头文件
#ifdef LinkList_H
#define LinkList_H
template <typename T>
class LinkList
{
public:
struct node
{
T element;
node *next;
};
node *initList(int lenght)
{
node *head=new node;
node *p=head;
p->element=0;
for (int i = 0; i < lenght-1; i++)
{
p->next = new node;
p=p->next;
}
p->next=NULL;
return head;
}
void insertList(node *&list, int n, T element)
{
node *p=list;
for (int i = 0; i < n-1; i++)
{
p=p->next;
}
node *Node=new node;
Node->next=p->next;
Node->element=element;
p->next=Node;
}
#endif
cpp文件
#include"LinkList.h"
#include<iostream>
using namespace std;
int main()
{
LinkList<int> ll;
LinkList::node *list = ll.initList(4);
ll.insertList(list, 4, 9);
return 0;
}
黄舟2017-04-17 13:37:06
C++ 中的模板分为类模板和函数模板,类模板的模板参数必须提供,函数模板的模板参数一般可以省略。
#include"LinkList.h"
#include<iostream>
using namespace std;
int main()
{
//LinkList ll;
LinkList<int> ll; // 提供模板参数
LinkList<int>::node *list = ll.initList(4); // 同上
ll.insertList(list, 4, 9);
return 0;
}