标题:报错:参见对正在编译的类 模板 实例化“LinkList<Telem>”的引用,什么意思 ...
只看楼主
jioper
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-10-21
结帖率:70%
已结贴  问题点数:20 回复次数:2 
报错:参见对正在编译的类 模板 实例化“LinkList<Telem>”的引用,什么意思?
#include<iostream>
using namespace std;
template<class Telem>
struct Tnode
{
    Telem data;
    Tnode * next;
};
template<class Telem>struct LinkList;
template<class Telem>class Node
{
    Telem data;
    Node<Telem>*next;
public:
    Node(Telem d = 0,Node<Telem> *n=NULL*n=NULL):data(d),next(n){};
    Telem getdata()
    {
        return data;
    }
    void setdata(Telem& el)
    {
        data=el;
    }
    Node<Telem> *getnext()
    {
        return next;
    }
    void setnext(Node<Telem> *p){next=p;}
};
template<class Telem>
struct LinkList
{

    Node<Telem> *head;
    int size;
    Linklist(){head = new Node<Telem>();size=0;};
    LinkList(Telem a[],int n);
    void clear()
    {
        delete[]head;head= new Node<Telem>();size=0;
    };
    bool full()
    {
        return false;
    };
    bool empty()
    {
        return head->next === NULL;
    };
    int leng()
    {
        return size;
    };
    bool inst(int loc,Telem& el);
    Telem delet(int i);
    Node<Telem> * index(int i);
    Telem gete(int i);
};//这里是VS2012的错误箭头指地方
template<class Telem>LinkList<Telem>::LinkList(Telem a[],int n)
{
    Node<Telem> *p;
    int i;
    head =new Node<Telem>(0,NULL);
    for(i=n-1;i>=0;i--)
    {
        p=new Node<Telem>(a[i],head->next);
        head->setnext(p);
    };
    size=n;
};
template<class Telem>Telem LinkList<Telem>::delet(int i)
{
    if(size==0)
        return NULL;
    Node<Telem> *p=index(i-1);
    Telem el=p->next->getdata();
    p->setnext(p->next->next);
    size--;
    return el;
};
template<class Telem>Telem LinkList<Telem>::gete(int i)
{
    Node<Telem> * p=index(i);
    return p->getdata();
};
int main()
{
    char b[]={'a'};
    LinkList<char>a1(b,1);
    a1.clear();
    cout<<a1.gete(1);
    return 0;
}
搜索更多相关主题的帖子: include public return 
2017-05-11 21:20
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:10 
怎么会没建立对象实例就直接调用构造函数了?
2017-05-11 22:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
先说一句,当编译器提示你
1>b.cpp(1144) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>        b.cpp(1197) : see reference to class template instantiation 'LinkList<Telem>' being compiled
1>        with
1>        [
1>            Telem=char
1>        ]
时,你应该贴错误的那句,即 Linklist(){……} 报错 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
而非第二句“参见”那句

第二,错误很多,但像 Node<Telem> *n=NULL*n=NULL 这种错误,不是知识欠缺
2017-05-12 08:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476930-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.150854 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved