c++类模板使用

浏览:40日期:2023-05-11

问题描述

我没有系统的学过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;}

问题解答

回答1:

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;}

相关文章: