Я новичок в C++, и я пытаюсь высушить свой код, например:C++ разыменования экземпляр
void gethit() {
Gert.hitbox(AA.x, AA.damage);
Gert.hitbox(AB.x, AB.damage);
Gert.hitbox(AC.x, AC.damage);
Gert.hitbox(AD.x, AD.damage);
Gert.hitbox(Terbil.x, Terbil.damage);
}
AA, AB, AC, AD и Terbil все экземпляры класса называемые Сущность с переменными x и повреждением.
Каждый раз, когда я хочу добавить новый экземпляр, мне придется войти в эту функцию и добавить ее вручную. Я пытаюсь добавить все адреса экземпляров в массив следующим образом:
void * p_enemys[10];
p_enemys[0] = &AA;
p_enemys[1] = &AB;
p_enemys[2] = ∾
p_enemys[3] = &AD;
p_enemys[4] = &Terbil;
Просто интересно, как я мог бы вызвать функцию из экземпляра через массив, я попытался сделать
for(int i = 0; i < 10; i++;) {
Gert.hitbox(p_enemys[i].x, p_enemys[i].damage);
}
и г ++ компилятор выплевывает: «запрос на члена` ущерб „в` p_enemys [я]“, который является не-агрегатного типа` недействительным * '»
Я не нужно использовать массивы конкретно любой помощь очень ценится.
Изменения сделаны, спасибо @gldraphael!
vector <Entity*> p_Enemys(10);
void gethit() {
for (int i = 0; i < 10; ++i) {
Entity * ienemy = (Entity*) p_Enemys[i];
Gert.hitbox((ienemy->x), (ienemy->damage));
}
}
Каков тип 'AA'? – gldraphael
Просто понял, что это было немного неинформативно. AA, AB, AC, AD и Terbil - все экземпляры класса Entity –