c++类模板使用
迷茫
迷茫 2017-04-17 13:35:06
0
1
563

我没有系统的学过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;
}
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート