我在使用继承和 STL 列表库时遇到问题...
比如说,我有一个带有两个派生类的抽象基类(其中定义了所有比较运算符)。该列表被声明为
list<StoreItem*> items;
我正在插入一个名为 Food 或 Clothing 的派生类(抽象基类 StoreItem)。我创建了一个即将插入的新 StoreItem 指针:
StoreItem* item = new Food(arguments here);
现在,我想将这个新项目(按顺序)插入到列表中,我的尝试是这样的:
list<StoreItem*>::iterator iter;
for (iter = inventory.begin(); iter != inventory.end(); iter++)
{
if (*item < **iter)
break; // break out to insert
}
inventory.insert(iter, item);
有什么我做错了吗?另外,我将如何从库存中提取信息?(例如:使用复制构造函数的 Food tempFruit(**iter))。
先感谢您!祝你有美好的一天。