如何在指针数组中存储不同类的对象

时间:2014-10-09 13:04:15

标签: c++ arrays pointers

我有3节课。 DrawGameComp'和'GameComp',其中'GameComp'是'DrawGameComp'的基类。我在Game类中有一个指针数组,它是控制类。 “     GameComp * components [];从主要的我必须创建一个动态的Game实例,并将GameComp和DrawGameComp的新对象添加到GameComp类型的指针数组中。

Game Game1(2);                 
Game1.Add(new GameComponent);  
Game1.Add(new DrawableGameComponent);

我在主要部分完成了这一部分。因为从主要我必须调用Add传递对象作为参数。当我存储这些对象时,我还希望将id为1分配给第一个对象,将id为2分配给第二个对象。我怎么能包括这一点。 我的Game类的Add()函数如下

void Game::Add(GameComponent*)
{ 
components[0]=GameComp;
componentCount++;
}

但它给了我错误。我努力了。但我不能。另外如何在Array中调用这些对象的Display()成员函数?这样吗?     组分[0] - >显示器();

2 个答案:

答案 0 :(得分:1)

Add方法应如下所示:

void Game::Add(GameComponent* comp)
{ 
    components[componentCount++] = comp;
}

确保在构造函数中将componentCount清零。

使用数组:

components[i]->DoSomething();

答案 1 :(得分:0)

1)您可能想写下以下内容:

void Game::Add(GameComponent* comp)
{ 
    components[componentCount++] = comp;
}

2)components [0] - >如果display是GameComponent类的成员函数,Display()将起作用。