-2

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

4

2 回答 2

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);

}

请注意,这里发生的通过引用传递就像通过指针传递,因为列表没有被复制。你总是引用同一个列表。

于 2013-06-04T05:32:58.973 回答
1
typedef std::vector<Entity> entities;


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

有一个实体的主向量,通过引用将其传递给函数避免了向量的复制。

于 2013-06-04T05:19:40.130 回答