C++ 在'之前应为主表达式;int';

C++ 在'之前应为主表达式;int';,c++,C++,我制作了关于链表的代码。但它在“int”之前有一个错误预期的主表达式 我使用类模板编写代码: #include <iostream> using namespace std; template <class T> class ChainNode{ friend class Chain; public: ChainNode(T paraData=0, ChainNode<T> *paraLink=0):

我制作了关于链表的代码。但它在“int”之前有一个错误
预期的主表达式

我使用类模板编写代码:

#include <iostream>

using namespace std;

template <class T>
class ChainNode{
    friend class Chain;
    public:
        ChainNode(T paraData=0, ChainNode<T> *paraLink=0):
            data(paraData),link(paraLink){
        }
    private:
        T data;
        ChainNode<T> *link;
};

template <class T>
class Chain{
    public:
        Chain(){
            first=0;
            last=0;
        }
        void insertBack(T& e){
            if(first){
                last=last->link= new ChainNode<T>(e, 0);
            }else{
                first=last=new ChainNode<T>(e, 0);
            }
        }
    private:
        ChainNode<T> *first;
        ChainNode<T> *last;
};

int main()
{
    Chain<int> a;
    for(int i=1; i<=5; i++){
        a.insertBack<int>(i); // <<at here expected primary-expression before 'int' occurs 
    }
    return 0;
}
#包括
使用名称空间std;
模板
类链节点{
朋友类链;
公众:
ChainNode(T paraData=0,ChainNode*paraLink=0):
数据(paraData)、链路(paraLink){
}
私人:
T数据;
链节点*链接;
};
模板
类链{
公众:
链(){
第一个=0;
last=0;
}
空插回(T&e){
如果(第一){
最后一个=最后一个->链接=新链节点(e,0);
}否则{
第一个=最后一个=新的链节点(e,0);
}
}
私人:
链节点*第一;
链节点*最后;
};
int main()
{
链a;

对于(inti=1;i您不需要给出模板参数

a.insertBack(i);

您不需要给出模板参数

a.insertBack(i);

您不需要给出模板参数

a.insertBack(i);

您不需要给出模板参数

a.insertBack(i);

那么,这是什么意思:
a.insertBack(i)
?你试图用这个语法表达什么?为什么你把
放在
insertBack
后面?那是我的错……那么,这是什么意思:
a.insertBack(i)
?你想用这个语法表达什么?为什么你把
放在
insertBack
后面?那是我的错…那么,这是什么意思:
a.insertBack(i)
?你试图用这个语法来表达什么?为什么你把
放在
插入回
之后?那是我的错…擦除,那是什么意思:
a.insertBack(i)
?你试图用这个语法表达什么?为什么你把
放在
插入回
之后?那是我的错…擦除