我正在尝试动态分配对象数组。我的项目中有一个敌人类,我想创建5个敌人。经过详尽的研究,我找不到问题的答案。
Enemy* mainEnemy = new Enemy(enemyShip)[5];
有一个错误:不存在从敌人到敌人的合适转换。
当我删除指针时,这一行没有错误:
Enemy mainEnemy = new Enemy(enemyShip)[5];
但是我如何处理像这样创建的对象呢?我不能这样设置单个对象的位置:
mainEnemy[0]->StartingPosition(); // no operator "[]" matches these operands . operand types are: Enemy[int]
建议:考虑使用向量。
const size_t NUM_ENEMIES{ 5 };
std::vector<Enemy*> enemies(NUM_ENEMIES, new Enemy(enemyShip));
你的问题:如果你想动态创建一个由5个敌人组成的阵列。
const size_t NUM_ENEMIES{ 5 };
Enemy* enemies[NUM_ENEMIES]{};
for( int x=0; x < NUM_ENEMIES; ++x )
{
enemies[x] = new Enemy(enemyShip);
}