ожидаемое первичное выражение перед 'int'

0

Я делаю код связанного списка. Но у него есть 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;
}
  • 0
    Итак, что это должно означать: a.insertBack<int>(i) ? Что вы пытались выразить этим синтаксисом? Почему вы поместили этот <int> после insertBack ?
  • 0
    Это моя вина ... стереть <int>
Теги:

1 ответ

3

Вам не нужно указывать аргумент шаблона.

a.insertBack(i);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню