2017-10-08 3 views
-1

J'ai donc eu un problème lorsque j'ai essayé de compiler. L'erreur semble être dans mon fichier d'en-tête.Initialisateur attendu avant le jeton <<'Dans la liste chaînée Fichier d'en-tête de pile

#ifndef GENERIC_LINKED_LIST_STACK_H_ 
#define GENERIC_LINKED_LIST_STACK_H_ 
#include "Node.h" 
#include <string> 
#include <iostream> 

template <class Type> 
class genericLinkedListStack 
{ 
    public: 
    genericLinkedListStack(); 
    int size() const; 
    void push(Type element); 
    Type pop(); 
    bool empty() const; 
    int top(); 

    private: 
    node <Type> *first;  
}; 

template <class Type> 
int stack<Type>::size() const 
{ 
    node<Type> *newNode; 
    newNode = new node<Type>; 
    int count = 0; 
    while (newNode!= NULL) 
    { 
     count++; 
     newNode = newNode->next; 
    } 
    return count; 
} 

template <class Type> 
void stack<Type>::push(Type element) 
{ 
    node<Type> *newNode; 
    newNode = new node<Type>; 
    newNode -> data = element; 
    newNode -> next = first; 
    first = newNode; 
} 

template <class Type> 
Type stack<Type>::pop() 
{ 
    node<Type> *current = first; 
    Type element = current -> data; 
    delete current; 
    return element; 
} 

template <class Type> 
bool stack<Type>::empty() const 
{ 
    return first == NULL; 
} 

template <class Type> 
void stack<Type>::genericLinkedListStack() 
{ 
    first = NULL; 
} 

template <class Type> 
void stack<Type>::top() 
{ 
    return front->data; 
} 


#endif // GENERIC_LINKED_LIST_STACK_H_ 

Chaque fois que je compile mes fichiers (y compris le fichier d'en-tête), je reçois cette erreur:

expected initializer before ‘<’ token 

Et je reçois cette erreur sur les lignes suivantes: 23, 37, 47, 56, 62, 68. J'ai passé en revue d'innombrables questions en ligne cherchant une solution à ma réponse mais il semble que ce problème consiste en un problème plus spécifique, il n'existe pas vraiment de solution universelle.

Nous vous remercions de votre aide!

EDIT 1: Le fichier Node.h

#ifndef NODE_H_ 
#define NODE_H_ 
#include <iostream> 
#include <string> 

using namespace std; 

template <class Type> 
struct node 
{ 
    Type data; 
    node *next; 
}; 

#endif //NODE_H_ 

Toutes les erreurs que je reçois (dans le fichier d'en-tête)

genericLinkedListStack.h:23:10: error: expected initializer before ‘<’ token 
int stack<Type>::size() const 
     ^
genericLinkedListStack.h:37:11: error: expected initializer before ‘<’ token 
void stack<Type>::push(Type element) 
     ^
genericLinkedListStack.h:47:11: error: expected initializer before ‘<’ token 
Type stack<Type>::pop() 
     ^
genericLinkedListStack.h:56:11: error: expected initializer before ‘<’ token 
bool stack<Type>::empty() const 
     ^
genericLinkedListStack.h:62:11: error: expected initializer before ‘<’ token 
void stack<Type>::genericLinkedListStack() 
     ^
genericLinkedListStack.h:68:11: error: expected initializer before ‘<’ token 
void stack<Type>::top() 
     ^
+0

Est-ce la première ou la seule erreur que vous obtenez? Qu'est-ce que 'pile'? Pouvez-vous réduire cela à un [mcve] qui inclut la définition de 'node'? – aschepler

+0

Travaillera dessus dès que possible –

Répondre

0

Vous semblez essayer de fournir les définitions des fonctions appartenant à une classe nommée stack, cependant votre classe s'appelle genericLinkedListStack.

+0

J'avais un sentiment qui causait mes erreurs. Va travailler dessus immédiatement. –

+0

Donc, pour les lignes comme celle-ci: 'pile vide :: push (élément de type)' Je les ai remplacé par: 'vide genericLinkedListStack :: push (élément de type)' Cependant, en faisant cela, obtenir de nouvelles erreurs: –

+0

'genericLinkedListStack.h: 62: 59: erreur: retour spécification de type de constructeur invalide vide genericLinkedListStack :: genericLinkedListStack()' ' genericLinkedListStack.h: 68: 6: erreur: prototype pour « genericLinkedListStack vide : : top() 'ne correspond à aucune classe' genericLinkedListStack ' void genericLinkedListStac k :: top() '' genericLinkedListStack.h: 16: 7: Erreur: le candidat est: int genericLinkedListStack :: top() haut int() ' –