#include <iostream>
using namespace std;
template <class Type>//定义模板类
class Queue{
public:
Queue(int MaxQueueSize=5);
void add(const Type&);
Type Delete();
private:
int tail;
int head;
Type* q;
int MaxSize;
};
template<class Type>
Queue<Type>::Queue(int MaxQueueSize):MaxSize(MaxQueueSize){
q=new Type[MaxSize];
head=tail=-1;
}
template<class Type>
void Queue<Type>::add(const Type& x){
if(tail==MaxSize-1) cout<<"队列已满无法插入";
else q[++tail]=x;
}
template<class Type>
Type Queue<Type>::Delete(){
Type x;
if(head==tail){
cout<<"队列为空"<<endl;
return 0;
}
x=q[++head];
return x;
}
int main(){
Queue<int> q=Queue<int>(10);
q.add(1);
cout<<q.Delete();
}