C++ 指针向量的访问指针方法
我不确定如何准确地表达这个问题,但我已经声明了两个向量C++ 指针向量的访问指针方法,c++,c++11,C++,C++11,我不确定如何准确地表达这个问题,但我已经声明了两个向量 std::vector<enemy*> enemies; std::vector<hit_area *> effects; 当我尝试访问成员、方法、敌人或效果时,它可以正常工作 if(effects[d]->collide(enemies[i]->x, enemies[i]->y enemies[i]->w, enemies[i]->h)) 我得到错误“基操作数的“->”具有非指针类
std::vector<enemy*> enemies;
std::vector<hit_area *> effects;
当我尝试访问成员、方法、敌人或效果时,它可以正常工作
if(effects[d]->collide(enemies[i]->x, enemies[i]->y enemies[i]->w, enemies[i]->h))
我得到错误“基操作数的“->”具有非指针类型“std::vector*”。
我可以访问敌人和效果的大小,它只是访问产生问题的方法通常你不传递向量的地址。相反,你传递一个引用:
void func(std::vector<enemy*> &enemies) {
std::cout << enemies.size() << '\n';
std::cout << enemies[i]->x << '\n';
}
// Call it like:
func(enemies);
void func(标准::向量和敌人){
std::cout敌人[i]
将是一个指针,您需要使用->
访问x
void func(std::vector<enemy*> &enemies) {
std::cout << enemies.size() << '\n';
std::cout << enemies[i]->x << '\n';
}
// Call it like:
func(enemies);
std::cout << enemies->operator[](i).x << '\n';