我正在使用SDL开发C ++游戏,我想拥有一个在整个游戏中使用的实体主列表。所以我不想传递这个数组的大量副本,我希望能够为函数提供指向实体指针数组的指针。实体类内部有各种各样的方法和属性,那么我如何为这个数组提供一个指针,函数可以用来迭代指针列表而不必知道实体的数量?
答案 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 ) {}
具有实体的主矢量,通过引用传递给它们 避免复制矢量。