所以当我尝试编译时遇到了问题。错误似乎在我的头文件中。
#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()
^
答案 0 :(得分:0)
您似乎正在尝试提供属于名为stack
的类的函数的定义,但您的类名为genericLinkedListStack
。