两个子类继承于一个基类,当在要使用的类中导入其中一个子类编译每问题,当两个子类都适用#include""导入的时候 基类回报redefinition of "***"的错误
代码如下:
基类:
#ifndef ShooterGame__BaseClass
#define ShooterGame__BaseClass
#include “cocos2d.h”
#include “Definition.h”
#endif /* defined(ShooterGame__BaseClass) */
class BaseClass : public cocos2d::Sprite {
private:
//------property------
//------function------
public:
//------property------
cocos2d::Size winSize;
//------function------
virtual bool init();
BaseClass();
virtual ~BaseClass();
void setPosition(cocos2d::Point pointShip);
};
第一个子类:
#ifndef ShooterGame__ShipEntity
#define ShooterGame__ShipEntity
#include “cocos2d.h”
#include “Definition.h”
#include “BaseClass.h”
#endif /* defined(ShooterGame__ShipEntity) */
class ShipEntity : public BaseClass {
private:
//--------property--------
void upData(float delta);
//--------funtion---------
public:
//--------property--------
cocos2d::Point velocity;
//--------function--------
ShipEntity();
virtual ~ShipEntity();
bool init();
void invincible(float dt);
};
第二个子类:
#ifndef ShooterGame__EnemyEntity
#define ShooterGame__EnemyEntity
#include “cocos2d.h”
#include “BaseClass.h”
#endif /* defined(ShooterGame__EnemyEntity) */
class EnemyEntity : public BaseClass {
private:
public:
//------property------
//------function------
EnemyEntity();
virtual ~EnemyEntity();
bool init();
};
当我在其他要用到这两个子类的类中用#include导入的时候基类会包错
(1)只导入一个子类时不报错
#include “cocos2d.h”
#include “GameSceneBackground.h”
#include “Definition.h”
#include “ShipEntity.h” //第一个子类
(2)两个子类一起导入的时候报错
#include “cocos2d.h”
#include “GameSceneBackground.h”
#include “Definition.h”
#include “ShipEntity.h” //第一个子类
#include “EnemyEntity.h” //第二个子类
在基类中报错:
class BaseClass : public cocos2d::Sprite { //这一行显示------Redefinition of “BaseCalss”
求大神们给点解释,本人刚接触C++,在这浪费了很多时间。