Cor*_*edl 0 c++ iteration pointers vector
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;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说:
成员引用基类型'Agent*'不是结构或联合.
我真的不明白为什么这不能导航向量.
it指向Agent*不是Agent. it->将尝试在指针上调用函数而不是对象.您需要做的是取消引用迭代器,然后调用成员函数.
(*it)->act();
Run Code Online (Sandbox Code Playgroud)