c++为啥会有unexpected end of file found,自己看了看不缺}

纯萌新,智障问题请担待,用的vc6.0,用funcode做游戏。
代码:
LessonX.h:
#ifndef LESSON_X_H
#define LESSON_X_H
#include
#include
#include
using namespace std;

/////////////////////////////////////////////////////////////////////////////////
//
// 游戏总管类。负责处理游戏主循环、游戏初始化、结束等工作
class CGameMain
{
private:
int m_iGameState; // 游戏状态,0:结束或者等待开始;1:初始化;2:游戏进行中
CSprite TemFruit;//零时的关于水果,炸弹的对象
CSprite TemFruit1;//零时的指针
//素材
CSprite
m_pApple1;
CSprite* m_pApple1left;
CSprite* m_pApple1right;
CSprite* m_pApple2;
CSprite* m_pApple2right;
CSprite* m_pApple2left;
CSprite* m_pMango;
CSprite* m_pMangoleft;
CSprite* m_pMangoright;
CSprite* m_pOrange;
CSprite* m_pOrangeleft;
CSprite* m_pOrangeright;
CSprite* m_pPeach;
CSprite* m_pPeachleft;
CSprite* m_pPeachright;
CSprite* m_pWatermelon;
CSprite* m_pWatermalenleft;
CSprite* m_pWatermelonright;
CSprite* m_pFork1;
CSprite* m_pBomb;
int m_iFruitCount ;// 每次运行生成的水果数量
float m_fScreenLeft ; // 屏幕左边界值
float m_fScreenRight ; // 屏幕右边界值
float m_fScreenTop ; // 屏幕上边界值
float m_fScreenBottom ; // 屏幕下边界值
vector m_vFruit;
public:
CGameMain(); //构造函数
~CGameMain(); //析构函数

// Get方法
int             GetGameState()                                          { return m_iGameState; }

// Set方法
void            SetGameState( const int iState )                { m_iGameState  =   iState; }

// 游戏主循环等
void            GameMainLoop( float fDeltaTime );
void            GameInit();
void            GameRun( float fDeltaTime );
void            GameEnd();
void            OnMouseMove( const float fMouseX, const float fMouseY );
void            OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY );
void            OnMouseUp( const int iMouseType, const float fMouseX, const float fMouseY );
void            OnKeyDown( const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress );
void            OnKeyUp( const int iKey );
void            OnSpriteColSprite( const char *szSrcName, const char *szTarName );
void            OnSpriteColWorldLimit( const char *szName, const int iColSide );

};

/////////////////////////////////////////////////////////////////////////////////
//
extern CGameMain g_GameMain;

#endif // LESSON_X_H

LessonX.cpp:
#include
#include "CommonClass.h"
#include "LessonX.h"
#include
#include
#include
#ifndef LESSON_X_H
#define LESSON_X_H
using namespace std;
//函数:生成0到x之间的一个随机数
int number( int x)
{int num = rand() % x;

return num;
}
//函数:随机水果
void fruit()
{
int x=(number(6));
switch(x)
{
case 1:
{
TemFruit1&=m_pApple1;
TemFruit*=TemFruit1;
break;
}
case 2:
{
TemFruit1&=m_pApple2;
TemFruit*=TemFruit1;
break;
}
case 3:
{
TemFruit1&=m_pMango;
TemFruit*=TemFruit1;
break;
}
case 4:
{
TemFruit1&=m_pOrange;
TemFruit*=TemFruit1;
break;
}
case 5:
{
TemFruit1&=m_pPeach;
TemFruit*=TemFruit1;
break;
}
case 6:
{
TemFruit1&=m_pWatermelon;
TemFruit*=TemFruit1;
break;
}
}
}

CGameMain g_GameMain;

//==============================================================================
//
// 大体的程序流程为:GameMainLoop函数为主循环函数,在引擎每帧刷新屏幕图像之后,都会被调用一次。

//==============================================================================
//
// 构造函数
CGameMain::CGameMain()
{
m_iGameState = 0;
//边界
m_fScreenBottom = 0.f;
m_fScreenLeft = 0.f;
m_fScreenRight = 0.f;
m_fScreenTop = 0.f;

}
//==============================================================================
//
// 析构函数
CGameMain::~CGameMain()
{
}

//==============================================================================
//
// 游戏主循环,此函数将被不停的调用,引擎每刷新一次屏幕,此函数即被调用一次
// 用以处理游戏的开始、进行中、结束等各种状态.
// 函数参数fDeltaTime : 上次调用本函数到此次调用本函数的时间间隔,单位:秒
void CGameMain::GameMainLoop( float fDeltaTime )
{
switch( GetGameState() )
{
// 初始化游戏,清空上一局相关数据
case 1:
{
GameInit();
SetGameState(2); // 初始化之后,将游戏状态设置为进行中
}
break;

    // 游戏进行中,处理各种游戏逻辑
case 2:
    {
        // TODO 修改此处游戏循环条件,完成正确游戏逻辑
        if( true )
        {
            GameRun( fDeltaTime );
        }
        else // 游戏结束。调用游戏结算函数,并把游戏状态修改为结束状态
        {               
            SetGameState(0);
            GameEnd();
        }
    }
    break;

    // 游戏结束/等待按空格键开始
case 0:
default:
    break;
};

}
//=============================================================================
//
// 每局开始前进行初始化,清空上一局相关数据
void CGameMain::GameInit()
{
// 获取屏幕的边界值
m_fScreenLeft = CSystem::GetScreenLeft();
m_fScreenRight = CSystem::GetScreenRight();
m_fScreenTop = CSystem::GetScreenTop();
m_fScreenBottom = CSystem::GetScreenBottom();
// 设置精灵世界边界
m_pFruit->SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenLeft, m_fScreenTop, m_fScreenRight, m_fScreenBottom);

}
//=============================================================================
//
// 每局游戏进行中
void CGameMain::GameRun( float fDeltaTime )
{
}
//=============================================================================
//
// 本局游戏结束
void CGameMain::GameEnd()
{
}
//==========================================================================
//
// 鼠标移动
// 参数 fMouseX, fMouseY:为鼠标当前坐标
void CGameMain::OnMouseMove( const float fMouseX, const float fMouseY )
{

}
//==========================================================================
//
// 鼠标点击
// 参数 iMouseType:鼠标按键值,见 enum MouseTypes 定义
// 参数 fMouseX, fMouseY:为鼠标当前坐标
void CGameMain::OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )
{

}
//==========================================================================
//
// 鼠标弹起
// 参数 iMouseType:鼠标按键值,见 enum MouseTypes 定义
// 参数 fMouseX, fMouseY:为鼠标当前坐标
void CGameMain::OnMouseUp( const int iMouseType, const float fMouseX, const float fMouseY )
{

}
//==========================================================================
//
// 键盘按下
// 参数 iKey:被按下的键,值见 enum KeyCodes 宏定义
// 参数 iAltPress, iShiftPress,iCtrlPress:键盘上的功能键Alt,Ctrl,Shift当前是否也处于按下状态(0未按下,1按下)
void CGameMain::OnKeyDown( const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress )
{

}
//==========================================================================
//
// 键盘弹起
// 参数 iKey:弹起的键,值见 enum KeyCodes 宏定义
void CGameMain::OnKeyUp( const int iKey )
{

}
//===========================================================================
//
// 精灵与精灵碰撞
// 参数 szSrcName:发起碰撞的精灵名字
// 参数 szTarName:被碰撞的精灵名字
void CGameMain::OnSpriteColSprite( const char *szSrcName, const char *szTarName )
{

}
//===========================================================================
//
// 精灵与世界边界碰撞
// 参数 szName:碰撞到边界的精灵名字
// 参数 iColSide:碰撞到的边界 0 左边,1 右边,2 上边,3 下边
void CGameMain::OnSpriteColWorldLimit( const char *szName, const int iColSide )
{

}

头文件有问题,文件花括号不匹配,具体你要把代码贴完整、贴正确。