2013-11-23 152 views
0

我做了關於鏈表的代碼。但它有一個錯誤expected primary-expression before 'int''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 (i)'?你用這種語法試圖表達什麼?爲什麼你在'insertBack'後面加上''? – AnT

+0

這是我的錯......擦除 user3022908

回答

3

你不應該需要給模板參數。

a.insertBack(i); 
相關問題