如何在C ++中创建并返回指向对象数组的指针?

时间:2013-06-04 05:07:33

标签: c++ arrays pointers

我正在使用SDL开发C ++游戏,我想拥有一个在整个游戏中使用的实体主列表。所以我不想传递这个数组的大量副本,我希望能够为函数提供指向实体指针数组的指针。实体类内部有各种各样的方法和属性,那么我如何为这个数组提供一个指针,函数可以用来迭代指针列表而不必知道实体的数量?

2 个答案:

答案 0 :(得分:2)

扩展claptrap的答案,这将是一个指向实体的指针列表

typedef std::vector<Entity*> EntityList;

EntityList masterEntityList;

void foo1( EntityList& myEntities ) {}
void foo2( EntityList& myEntities ) {}

int main()
{
   masterEntityList.push_back(new Entity);
   foo1(masterEntityList);

}

请注意,通过引用传递,例如在这里发生,就像通过指针一样传递,因为列表不会被复制。你总是引用相同的列表。

答案 1 :(得分:1)

typedef std::vector<Entity> entities;


void foo1( entities& myEntities ) {}
void foo2( entities& myEntities ) {}

具有实体的主矢量,通过引用传递给它们 避免复制矢量。