#define __MEDIATOR_H__
#include "cocos2d.h"
#include "Hero.h"
#include "Singleton.h"
#include "TileMap.h"
class GameMediator : public Singleton<GameMediator> {
public:
//void addHero(Hero *hero);
void addTileMap(TileMap *tileMap);
bool checkMoveable(cocos2d::CCPoint position);
private:
Hero* hero; //这个Hero对象硬是报错,注释掉就没错,不注释就报错
TileMap *tileMap;};
#endif // __MEDIATOR_H__
2>d:\Program Files\Microsoft Visual Studio 10.0\VC\include\xlocale(323): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
2>d:\cocos2d_workspace\cocos2d\bombman\classes\GameMediator.h(17): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
2>d:\cocos2d_workspace\cocos2d\bombman\classes\GameMediator.h(17): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
2>d:\cocos2d_workspace\cocos2d\bombman\classes\GameMediator.h(17): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
这里的Hero明明就是一个对象。为什么老是编译不通过!!!!
搞了半天,原来是我另外一个文件出了错!悲剧~
不过C++的引入头问件,不是我原来理解的那样。
我现在的错误是,
#include "Hero.h" 中的Hero.h文件引用了 GameMediator.h文件
而GameMediator.h文件又引用了Hero.h 文件,导致了交叉错误。 导致了C++头文件相互包含的错误!
而我原来的HelloWorldScene.h文件中也有错误,所以,错误越来越多,就不知道哪里报错了 !
这里有一个问题。
我原来的错误是: GameMediator.h包含了Hero.h头文件, 而 Hero.h头文件又包含了GameMediator.h头文件。HelloWorldScene.h头文件又包含了Hero.h头文件,这样导致了HelloWorldScene.h文件中先引入了Hero.h头文件,通过Hero.h引入了GameMediator.h头文件。编译器就因为这点,无法分晓了其中的对象定义错误!