为什么在派生类中基类定义的head tail 没用了 新人求解

#include
#include
using namespace std;
template
struct Node{
T data;
Node*prior;
Node*next;
};
template
class list{
public:
Node*head;
Node*tail;
list()
{
head=tail=NULL;
}
virtual void store(T i)=0;
virtual T retrieve()=0;
};

template
class queue:public list{
public:
void store(T i);
T retrieve();
};

template
void queue::store(T i)
{
Node*item;
item=new Node;
if(!item)
{
cout<<"error"< }
item->data=i;
if(!head)
{
item->prior=head;
head=tail=item;
item->next=NULL;
}
item->prior=tail;
tail->next=item;
tail=item;
item->next=NULL;
}

template
T queue::retrieve()
{
T temp;
Node*p;
if(!head)
{
cout<<"队列已空"< }
temp=head->data;
p=head;
head=head->next;
head->prior=NULL;
delete p;
return temp;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!