構文エラーについて
Posted: 2011年11月30日(水) 05:14
こんにちは。今回は次のコンパイルエラーが出てしまい困っています。
effect.h(6): error C2143: 構文エラー : ';' が '<クラスヘッド>' の前にありません。
Effect.hは次のようになっています。
そして、クラスヘッドが~とのエラーなのでGameParent.hに問題があるのではないかと考えましたが自分の力で見つけることが出来ませんでした。
GameParent.hのコードは次のようになっています。
解決策をご教示いただければ幸いです。
effect.h(6): error C2143: 構文エラー : ';' が '<クラスヘッド>' の前にありません。
Effect.hは次のようになっています。
#pragma once
#include "Mover.h"
#include "GameParent.h"
class Effect : public Mover{
public:
enum State{
STATE_ALIVE,
STATE_DEAD,
};
State mState;
//タスクリストを指定する為に
//newとdeleteをオーバーロード
//タスクリストは効果タスクリストを使用
void* operator new(size_t t){
return operator_new(t, GameBody->mEffectList);
}
void operator delete(void* p){
operator_delete(p, GameBody->mEffectList);
}
//コンストラクタ
Effect(double x, double y);
};
class MyShipCrash : public Effect{
protected:
//カウンタ
int mCount;
public:
//コンストラクタ
MyShipCrash(double x, double y);
virtual bool move();
};
class Delete : public Effect{
protected:
//親エフェクト
Effect* mParent;
//大きさ
double mRate;
//色
int mColor;
//画像の回転角度
double mAngle;
//カウンタ
int mCount;
public:
//コンストラクタ
Delete(double x, double y, Effect* effect, double rate, int color, double angle);
virtual bool move();
virtual void draw();
};
class EnemyCrash : public Effect{
protected:
//カウンタ
int mCount;
//消滅エフェクトの色
int mColor;
public:
//コンストラクタ
EnemyCrash(double x, double y, int color);
virtual bool move();
};
GameParent.hのコードは次のようになっています。
#pragma once
#include "Child.h"
#include "define.h"
class Parent;
class TaskList;
class MyShip;
class GameChild;
class GameParent : public Child{
public:
//2Dグラフィックのハンドル
int mMyShipImg[12];//自機の画像
int mBoardImg[30];//ボードの画像
int mShotImg[2];//自機ショットの画像
int mBulletImg[10][10];//敵の弾の画像
int mEffectImgDel[10];//消滅エフェクトの画像
int mEnemyImg[3][9];
//当たり判定
int mBulletRange[10];
//効果音の鳴らすフラグ
int mSeFlag[SE_MAX];
//効果音のハンドル
int mSe[SE_MAX];
//タスクリスト
TaskList* mMyShipList; //自機のタスクリスト
TaskList* mShotList; //自機ショットのタスクリスト
TaskList* mBulletList; //敵の弾のタスクリスト
TaskList* mEffectList; //効果のタスクリスト
TaskList* mEnemyList; //敵のタスクリスト
enum NextSequence{
NEXT_ENDING,
NEXT_GAME_OVER,
NEXT_TITLE,
NEXT_NONE
};
GameParent();
~GameParent();
Child* update(Parent*);
void moveTo(NextSequence);
void musicIni();
void musicPlay();
void setMyShip(MyShip* ship){
mMyShip = ship;
}
MyShip* getMyShip(){
return mMyShip;
}
private:
//2Dグラフィックデータのロード
void load();
//自機へのポインタ
MyShip* mMyShip;
//次の状態遷移
NextSequence mNextSequence;
//カウンタ
int mCount;
//子供
GameChild* mGameChild;
};
extern GameParent* GameBody;