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