2

そのデータを読み取るために、作成したクラス オブジェクトを別のクラスに渡そうとしています。私が得ているエラーはc2061です:構文エラー:識別子「プレーヤー」

これは私の Player2.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;
};

そして、私が得ているエラーは、Playerヘッダーを持ち込んだにもかかわらず、Playerを認識できないということです。

これがPlayer.hです

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% 動作します。

4

1 に答える 1

1

player2 が定義される前に player はコンパイルされないためclass player、player2 の宣言の上に配置すると、player 2 に移動する前に player がコンパイルされます。

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

- また、Hunter McMillenがプレイヤー 2 を基本クラスから継承させることを考えることを提案したように、おそらくplayerそれはすべてのプレイヤーが使用する標準的な方法を定義します (ハンターのアイデアを盗みたくないので、彼がもっと喜んでくれたら、これについての回答を投稿させます詳細なアプローチ)。

于 2012-12-15T04:08:35.430 に答える