我编写有关链表的代码。但是它有一个错误expected primary-expression before '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;
}

最佳答案

您无需提供模板参数。

a.insertBack(i);

08-05 12:24