我有一个通用链表,它适用于各种类型的数据,包括对象和指向对象的指针等,但是当我从派生自抽象类的类中插入对象时,我无法使用该列表。
我有一个名为vehicle 的抽象类和2 个carr 和truck 类,我可以做这样的事情:
list<vehicle> lv;
vehicle * v1;
vehicle * v2;
v1 = new carr;
v2 = new truck;
cin >> *v1 >> *v2;
//But when I try to insert in the list
lv.insertEnd(*v1);
我有错误:
无法分配抽象类型“车辆”的对象
并且编译器显示错误出现在我编写的部分链表代码的 insertEnd 方法中:
newNode->item = new Item;
这是一个项目的一部分,我需要有一个车辆列表,车辆可以是轿车、卡车等。我有一组车辆用指向指针的指针实现,但我试图用车辆列表来做到这一点.
你能帮助我吗?
编辑:该项目在我的链表中,我将展示我的 insertEnd 方法:
template <class Item>
void list<Item>::insertEnd(const Item& item)
{
node<Item> *newNode= new node<Item>;
newNode->item = new Item;
*(newNode->item) = item;
newNode->next = 0;
if(head == 0)
{
head = newNode;
tail = newNode;
_size++;
}
else
{
novoNo->prev = tail;
tail->next = newNode;
tail = newNode;
_size++;
}
}