2017-10-12 115 views
-3

我的代碼有很多錯誤。 但我不知道錯誤的東西... 有這樣的常見錯誤按摩,使這種「 範圍內沒有聲明」無效使用模板名稱 「節點」沒有參數列表「,」head_ptr「 ,「'tail_ptr'未在此範圍內聲明」, 「't'未在此範圍內聲明」, 「模板參數1無效」,「節點'之前的預期類型說明符」 我不認爲我的整體代碼是錯誤的。 但是錯誤太多讓我想到 所有編碼的組成都是錯誤的。 它是所有代碼的一部分。我的代碼有一些常見錯誤,我該如何解決它?

我不知道...... 請幫我...

error explanation

template <typename T> 
Node* Node<t>::getNext(void) 
{ return next; } 

template <typename T> 
class List 
{ 
    private: 
     Node* head_ptr; Node* tail_ptr; int numOfItems; 
    public: 
     List(); //constructor 
     int size(void); bool isEmpty(void); 
     void insertTail(T x); 
     void removeHead(void); 
     Node<T>* getHead(void); 
     Node<T>* getTail(void); 
     void insert_with_priority(T x); 
}; 

template <typename T> 
List<T>::List() 
{ head_ptr = NULL; tail_ptr = NULL; numOfItems = 0; } 

template <typename T> 
void List<T>::insertTail(T x){ 
    Node<t>* newTail = new Node(x); 
    tail_ptr->setNext(newTail); 
    tail_ptr = newTail; 
    numOfItems++; 
} 

template <typename T> 
void List<T>::removeHead(void){ 
    if(numOfItems == 0) 
     return 0; 
    if(numOfItems == 1){ //i.e. headptr == tail_ptr 
     delete head_ptr; head_ptr = NULL; tail_ptr = NULL; 

' 請給我很多意見。

+4

請將*錯誤複製粘貼爲文字,填寫完整。然後*編輯您的問題*以包含完整的複製粘貼。並請[(重新)瞭解如何提出好問題](http://stackoverflow.com/help/how-to-ask)。 –

回答

1

即使你的問題是不完整的,我會幫助你的錯誤一個(它可能會解決其他後續錯誤和)...

讓我們的線

template <typename T> 
Node* Node<t>::getNext(void) 
{ return next; } 

你說getNext函數返回一個指向Node的指針。但是,在這種情況下Node?它不是一個類或一個類型,它是一個模板的類或類型。這不完整。您需要指定充分和完整的類或類型:

template <typename T> 
Node<T>* Node<t>::getNext(void) 
{ return next; } 

注意返回類型現在是全類。

相關問題