2017-10-12 7 views
-3

Il y a beaucoup d'erreurs dans mes codes. Mais je ne sais pas sur les mauvaises choses ... Il y a des massages d'erreur communs tels que "noeud invalide du nom de modèle 'noeud' sans une liste d'arguments", "'head_ptr' n'a pas été déclaré dans cette portée " , "'tail_ptr' n'a pas été déclaré dans cette étendue", "'t' n'a pas été déclaré dans cette étendue", "template argument 1 is invalid", "type-spécificateur attendu avant 'Node'" Je ne sais pas pense que mon code global est faux. Mais trop d'erreur me font penser toute la composition du codage est erreur .. C'est une partie de tout le code.Mes codes ont quelques erreurs courantes comment puis-je le résoudre?

Je ne sais pas ... S'il vous plaît aidez-moi ...

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; 

' S'il vous plaît me donner beaucoup des commentaires.

+4

S'il vous plaît * copier-coller * les erreurs, que le texte, complète et dans son intégralité. Puis * éditez votre question * pour inclure ce copier-coller complet. Et s'il vous plaît [(re) lire sur la façon de poser de bonnes questions] (http://stackoverflow.com/help/how-to-ask). –

Répondre

1

Même si votre question est incomplète, je vais vous aider avec un des erreurs (et il pourrait résoudre d'autres erreurs de suivi ainsi) ...

permet de prendre les lignes

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

Vous dites que la fonction getNext renvoie un pointeur vers Node. Mais, dans ce cas, que estNode? Ce n'est pas une classe ou un type, c'est un modèle pour une classe ou un type. Ce n'est pas complet. Vous devez spécifier la classe pleine et entière ou le type:

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

Notez le type de retour qui est maintenant une pleine classe.