我只是C ++的新手,所以请多多包涵。在我的类MyArena中,我创建了另一个类fighters的指针Fighter的向量。使用此向量,我正在收集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之后

#include "Fighter.h"


如果Fighter.h在另一个文件夹中,则可以使用相对路径。

10-08 09:29