c++ - 从指针 vector 调用函数

标签 c++ function vector

我只是 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/

相关文章:

vector - Agda:Stdlib 中的向量成员资格? (以及一般如何学习 stdlib)

c++ - 为什么我可以覆盖 -(否定)和! (不是)但不是~(按位不是)?

c++ - 在派生类中复制构造和赋值运算符

c++ - 显式链接的 DLL 中的 CDecl 清理代码

Javascript 返回函数发生得太晚了

unity-game-engine - 绕全局 Y 轴旋转对象,忽略其局部旋转

c++ - 将 vector<unique_ptr<Derived>> move 到 vector<unique_ptr<Base>>

c++ - 何时以及如何使用 GCC 的堆栈保护功能?

function - 最适合实现此 DSL 的语言是什么?

c++ - Lua - 反射 - 获取对象上的函数/字段列表?