継承と STL リスト ライブラリの使用に問題があります...
たとえば、2 つの派生クラス (すべての比較演算子が定義されている) を持つ抽象基本クラスがあるとします。リストは次のように宣言されます
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))。
前もって感謝します!良い一日を過ごしてください。