所以我嘗試編譯時遇到了問題。該錯誤似乎在我的頭文件中。'<'標記之前的預期初始化器在鏈接列表堆棧頭文件
#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_
我每次編譯我的文件(包括頭文件),我得到這個錯誤:
expected initializer before ‘<’ token
而且我得到以下行此錯誤:23,37,47,56, 62,68。 我已經在網上回顧了無數的問題,尋求我的答案的解決方案,但似乎這個問題包含一個更具體的問題,實際上並沒有一個通用的解決方案。
謝謝你的幫助!
編輯1: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_
我得到的(在頭文件)中的錯誤
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()
^
這是您獲得的第一個還是唯一的錯誤?什麼是「堆棧」?你可以減少這個[mcve],包括'node'的定義嗎? – aschepler
將盡快處理它 –