
C++队列问题求解,这个代码有什么问题?
#includeusingnamespacestd;template(classTintsize)classqueue{Tx[size];intcurrent,front...
#include
using namespace std;
template(class T int size)
class queue {
T x[size];
int current,front,rear;
public: queue(){ current=0;front=0;rear=0; }
void insert(T a) { if(current==size){cout<<"队满";exit(); }x[rear]=a;rear=rear++%size;current++; }
void front(){ if(current==0){ cout<<"队空";exit(); } front=front++%size;current--; }
void show(){ for(int i=front; i<rear; i++) cout<<x[i];cout<<endl; }
};
void main() {
cout<<"此程序测试队列"<<endl;
queue A();
size=10;
A.insert(6);
A.front();
A.show();
} 展开
using namespace std;
template(class T int size)
class queue {
T x[size];
int current,front,rear;
public: queue(){ current=0;front=0;rear=0; }
void insert(T a) { if(current==size){cout<<"队满";exit(); }x[rear]=a;rear=rear++%size;current++; }
void front(){ if(current==0){ cout<<"队空";exit(); } front=front++%size;current--; }
void show(){ for(int i=front; i<rear; i++) cout<<x[i];cout<<endl; }
};
void main() {
cout<<"此程序测试队列"<<endl;
queue A();
size=10;
A.insert(6);
A.front();
A.show();
} 展开
2个回答
展开全部
你模板中的x没有进行初始化
追问
怎么初始化呢?可以把修改的代码贴上来嘛?
追答
构造函数里需要具体实例化一下T x[]=new T[X];
而且你的模板中根本没有定义size这个变量,只不过声明了size为一个int型变量,在类中的size根本没有传值进去,你在main中写的size就是个main的变量,和类中的size不是一个变量,所以你需要在类中增加一个size属性或者给方法增加size形参输入
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询