第一次在C++中写类,新手,见笑
#include<iostream.h>
#include<iostream>
template<typename T>
class Queue
{
private:
int maxsize,front,rear;
T *q;
public:
Queue()
{
q=new T[maxsize];
rear=front=0;
}
~Queue()
{
delete []q;
}
bool AddQ(T item);
bool Delete(T &item);
bool QFull();
bool QEmpty();
int getsize();
};
template<typename T>
bool Queue<T> ::AddQ(T item)
{
rear=(++rear)%maxsize;
if(rear==front)
{
printf("The Queue is full");
if(!front)
{
rear=maxsize;
}
else
{
rear=rear-1;
}
return false;
}
else
{
q[rear]=item;
return true;
}
}
template<typename T>
bool Queue<T> ::Delete(T &item)
{
if(front==rear)
{
printf("The queue is empty!");
return false;
}
else
{
front=front+1;
front=front%maxsize;
item=q[front];
return true;
}
}
template<typename T>
int Queue<T> ::getsize()
{
return rear-front;
}
1、首先吧,类应该写到.h文件中
2、其次应该写与类名一样的构造函数
Queue()
{
q=new T[maxsize];
rear=front=0;
}
3、template<typename T>
这样的话就可以不限制使用的数据类型了
4、class之后的{}应该加;
5、
bool AddQ(T item);
bool Delete(T &item);
bool QFull();
bool QEmpty();
int getsize();
在类外写这些函数时,每一个函数前应该加template<typename T>
6、还有一个问题:
Delete(T &item)
Add(T item)
为什么一个取地址为什么另一个不取地址
试了一下,好像暂时两个都可以运行