简而言之,这就是我所得到的。
我有一个基础项目类,从中派生药水、设备、咒语等,并且从这些类派生了几个类,依此类推。注意:一些派生类具有非虚拟类特定的成员函数/数据类型。
我还创建了一个“随机”装甲/武器生成器。
我想要的是这样的库存:
struct Hero_Inventory
{
std::vector<Spell*> Spell_Inventory;
std::vector<Potion*> Potion_Inventory;
std::vector<Equipment*> Equipment_Inventory;
Hero_Inventory() {}
};
为我的法术和药水创建一个容器(库存)非常简单。因为它们将是预定义的。使用多态性和指针不会有问题
我的主要问题是弄清楚如何存储和使用(例如访问武器类的特定成员函数)我随机生成的武器/盔甲(它们都是从设备派生的)。
我希望我所有的“设备”都放在一个容器中。
我在几个函数中生成了我所有的设备,所以当我完成生成过程并最终得到如下结果时:
Equipment * TestArmor = new Armor(/* Bunch of parameters go here */);
我不知道如何处理它,因为一旦该函数超出范围,我就会失去该指针。如果没有指针/引用,我就不能使用多态性,这使我可以将我的设备全部保存在一个容器中。
在这一点上我真的很迷茫,我正在寻找人们可以提出的任何建议或替代方案。如果您需要更多代码,我会发布它,只需告诉我您感兴趣的部分。
抱歉,如果我含糊不清,这是我的第一篇文章。我通常很擅长自己解决问题,但这件事让我胜过。如果有人需要更多信息,请询问,我会尽力提供。
在此先感谢,-瑞恩