将对象作为参数传递时出现问题

Trouble passing an object as a parameter

本文关键字:问题 参数传递 对象      更新时间:2023-10-16
嘿,我

正在尝试将我创建的类对象传递到另一个类中以读取该数据。我得到的错误是c2061:语法错误:标识符"播放器"

这是我的播放器2.h

#pragma once
#include "DarkGDK.h"
#include "Input.h"
#include "Player.h"
class Player2{
public:
    Player2();
    void PlayerSetup();
    void PlayerUpdate(Player& user1);
    void PlayerHealthReset();
    void Gravity();
    float GetPosX();
    bool CheckMatchEnd();
    void PlayerFire(Player& user1);
    void PlayerCheckHitEnemies(Player& user1);
private:
    float Vx;
    float Vy;
    float PosX;
    float PosY;
    float Speed;
    int Lives;
    int Health;
    //  
    int gravity;
    bool playerJumping;
    bool matchEnd;
    bool playerIsFiring;
    float playerBullet;
    bool directionBullet;
};

得到的错误是,即使我引入了播放器标题,它也无法识别播放器。

这是玩家。

class Player{
public:
    Player();
    void PlayerSetup();
    void PlayerUpdate(float PosX2);
    void PlayerHealthReset();
    float GetPosX();
    float GetPosY();
    void Gravity();
    bool CheckMatchEnd();
    void PlayerFire(float PosX2);
private:
    float Vx;
    float Vy;
    float PosX;
    float PosY;
    float Speed;
    int Lives;
    int Health;
    float playerBullet;
    bool playerIsFiring;
    int gravity;
    bool playerJumping;
    bool matchEnd;
    bool directionBullet;
};

头文件中的所有相应代码都可以 100% 工作,因为我已经对其进行了测试。

玩家在定义玩家 2 之前不会编译,因此将 class player 放在玩家 2 的声明上方将在移动到玩家 2 之前编译播放器。

class player;
class player2{
//...
}; 

-同样正如亨特麦克米伦建议考虑让玩家 2 继承基类,也许player定义所有玩家都会使用的标准方法(我不想窃取亨特的想法,如果他愿意,我会让他发布关于这个问题的答案更深入的方法)。