static const unsigned int DEFAULT_SIZE=100;
这个没必要吧 放在外面定义为const就可以了吧
修改如下
#ifndef _STACK_H_
#define _STACK_H_
#include
using namespace std;
const unsigned int DEFAULT_SIZE=100;
template
class seqstack
{
private:
private:
int top;
T *stacka;
int maxsize;
public:
seqstack(int size=DEFAULT_SIZE);
~seqstack(){ delete [] stacka; }
void push(const T &item);
T pop(void);
T gettop(void) const ;
bool empty(void) const { return (top==-1); }
bool full(void) const { return (top==maxsize-1); }
void clear(void) { top=-1; }
};
template
seqstack
{
top=-1;
maxsize=size;
stacka=new T[maxsize];
if(!stacka)
{
cerr<<"allocate memory failed."<
}
}
template
void seqstack
{
if(full())
{
cerr<<"stack full, cannot push."<
}
top++;
stacka[top]=item;
}
template
T seqstack
{
if(empty())
{
cerr<<"stack empty, cannot pop."<
}
T item=stacka[top];
top--;
return item;
}
template
T seqstack
{
if(empty())
{
cerr<<"stack empty, cannot gettop."<
}
return stacka[top];
}
#endif