我只是 C++ 的新手,所以请多多包涵。在我的类 MyArena
中,我创建了另一个类 Fighter
的指针 vector fighters
。使用此 vector ,我正在收集 Fighter 指针并为它们调用函数。但是我不断收到关于 fighters
的错误。
#include <vector>
using namespace std;
class Fighter;
class MyArena {
vector<Fighter*> fighters;
int current_size = 0;
bool MyArena :: addFighter(string info){
for (int i = 0; i < 11; i++){
if (fighters[i]->getName() == n) //error that "point to incomplete pass type is not allowed?"
isLegit = false;
}
fighters.push_back(new Fighter(n, t, mH, st, sp, m)); //"Fighter" is incomplete type?
return true;
}
bool removeFighter(string name){
for (int i = 0; i < 11; i++){
if (fighters[i]->getName() == name)//error that "point to incomplete pass type is not allowed?"
fighters[i] = NULL;
}
}
};
我应该如何处理这个问题?
最佳答案
你在这里转发声明类:
class Fighter;
但是您从未包含该文件。把这个放在你的其他包含之后
#include "Fighter.h"
或者如果 Fighter.h
在不同的文件夹中,则为相对路径。
关于c++ - 从指针 vector 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25695292/