今回も初歩的な質問ですが回答お願いします
まずはソースを張ります
---------------------play.h------------------------------------------------
#ifndef INCLUDE_PLAY
#define INCLUDE_PLAY
#include "mainloop.h"
class Play{
private:
int a;
public:
Play();//コンストラクタ
~Play();//デストラクタ
void update(MainLoop :: SeqID* parent);//更新関数
void moveTo(MainLoop :: SeqID* parent);//外部からの状態遷移
};
---------------------play.cpp------------------------------------------------
#include "mainloop.h"
#include "DxLib.h"
//コンストラクタ
Play :: Play(){
printfDx("Playクラスが生成されました");
}
//デストラクタ
Play :: ~Play(){
printfDx("Playクラスが解放されました");
}
void Play :: update(MainLoop :: SeqID* parent){
}
void Play :: moveTo(MainLoop :: SeqID* parent){
}
--------------------------------------mainloop.h---------------------------------
#ifndef INCLUDE_MAINLOOP
#define INCLUDE_MAINLOOP
#include "charSelect.h"
#include "stageSelect.h"
#include "title.h"
#include "play.h"
class MainLoop{
public:
//列挙型を宣言
enum SeqID{
SEQ_TITLE,
SEQ_CHARACTER_SELECT,
SEQ_STAGE_SELECT,
SEQ_PLAY,
SEQ_NONE
};
MainLoop();//コンストラクタ
~MainLoop();//デストラクタ
void update();//アップデート関数
void setStageID(int stageID);
int count;
private:
int mStageID;//ステージ番号を表す
SeqID mNow;//今実行している状態
SeqID mNext;//次のフレームの状態を表す列挙型変数
//mainloopが管理する子クラス
Title* mTitle;
CharacterSelect* mCharacterSelect;
StageSelect* mStageSelect;
Play* mPlay;
};
#endif
play.h(20):error C2653: 'MainLoop' : 識別子がクラス名でも名前空間名でもありません。
play.h(20):error C2061: 構文エラー : 識別子 'SeqID'
play.cpp(16):error C2511: 'void Play::update(MainLoop::SeqID *)' : オーバーロードされたメンバー関数が 'Play' にありません。
play.cpp(21):error C2511: 'void Play::moveTo(MainLoop::SeqID *)' : オーバーロードされたメンバー関数が 'Play' にありません。
これはMainLoopクラスが正常にインクルードされていないということでしょうか?
私的には、Play.hの4行目で#include "mainloop.h"と宣言しているのでMainLoopクラスを使えるはずだと思うのですが、ちょっと原因がわかりません。
何か初歩的なことが理解できていない気もしますが、皆さんの助言をいただきたいと思います。
そもそも、#include ""というのは "ヘッダーファイル名" をヘッダーファイル内のソースコードに置き換えるというもので好かったでしょうか