C++中的问题,急..

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:15:11
我是个初学者,我的程序是这样的:
#include<iostream.h>
#include<fstream.h>
template<class T> class Queue;
template<class T>
class Node {
friend Queue<T>;
private:
T data;
Node<T> *next;
};

template<class T>
class Queue{
public:
Queue(){front=rear=0;}
~Queue();
bool Empty()const
{return((front)?false:true);}
Queue<T> &EnQueue(const T&x);
Queue<T> &DeQueue(T&x);
private:
Node<T> *front;
Node<T> *rear;
};
template<class T>
Queue<T>::~Queue()
{
Node<T> *next;
while(front){
next=front->next;
delete front;
front=next;
}
}
template<class T>
Queue<T>&Queue<T>::EnQueue(const T&x)
{
Node<T> *p=new Node<T>;
p->data=x;
p->next=0;
if(front)rear->next=p;

最严重的问题是没有 对类模板进行实例化
另外OutOfbounds()不知道是做什么的,没有定义,所以我给你注释掉了
以下是可以运行的代码:
我给你实例化为int类型了

#include<iostream.h>
#include<fstream.h>
template<class T> class Queue;
template<class T>
class Node {
friend Queue<T>;
private:
T data;
Node<T> *next;
};

template<class T>
class Queue{
public:
Queue(){front=rear=0;}
~Queue();
bool Empty()const
{return((front)?false:true);}
Queue<T> &EnQueue(const T&x);
Queue<T> &DeQueue(T&x);
private:
Node<T> *front;
Node<T> *rear;
};
template<class T>
Queue<T>::~Queue()
{
Node<T> *next;
while(front){
next=front->next;
delete front;
front=next;
}
}
template<class T>
Queue<T>&Queue<T>::EnQueue(const T&x)
{
Node<T>