monster* monster1 = new monster("Frankenstein", "The Ugly One", BackYard);
Player* player1 = new Player("Corey", "The Chosen one", Atrium);
Player* player2 = new Player("Darth Vader", "The Evil One", Atrium);
vector<Agent*> agents;
agents.push_back(monster1);
agents.push_back(player1);
agents.push_back(player2);
while (true)
{
vector<Agent*>::iterator it;
for (it = agents.begin(); it < agents.end(); it++) {
it->act(); // Error here
if (it->act() == false) // Error here
return 0;
}
...
}
Я получаю сообщение об ошибке сказав:C++ Vector Итерация Error
член типа ссылки база 'Агент *' не является структурой или объединением.
Я действительно не понимаю, почему это не работает для навигации по вектору.
Какая ошибка? Что такое «действовать»? Почему вы называете 'act' дважды? – erip
Почему вы используете 'new' в C++? Вместо этого используйте 'make_unique' +' unique_ptr'. –