我有3个类。 DrawGameComp'和'GameComp',其中'GameComp'是'DrawGameComp'的基类。我在控制类的Game类中有一个指针数组。 ' GameComp *组件[];从主中我必须创建一个动态的Game实例,并将GameComp和DrawGameComp的新对象添加到GameComp类型的指针数组中。如何在指针数组中存储不同类的对象
Game Game1(2);
Game1.Add(new GameComponent);
Game1.Add(new DrawableGameComponent);
我已经完成了这部分的主要部分。因为从主要我必须调用添加传递对象作为参数。当我存储这些对象时,我也希望为第一个对象分配一个id,向第二个对象分配一个id为2的id。我怎么能包括这一点。 我的游戏类的Add()函数如下:
void Game::Add(GameComponent*)
{
components[0]=GameComp;
componentCount++;
}
,但它给我的错误。我非常努力地尝试。但我不能。另外我该如何调用Array中的这些对象的Display()成员函数?这是这样吗? components [0] - > Display();
什么是错误消息? – 2014-10-09 13:12:10
不要忘记,因为您正在使用基类指针,您需要确保基类方法是虚拟的,如果您希望它调用派生类方法。 – Discordanian 2014-10-09 13:12:31
如何使用'std :: vector'而不是数组?这样你就不需要'componentCount',并且可以轻松地遍历这些项目。 – crashmstr 2014-10-09 13:13:06