我有一个类 GameObject,它有一个 Component 和 Transform 的向量。Transform 是一个组件,但可以单独访问。当我尝试在 GameObject 中同时包含 Component.h 和 Transform.h 时,我在 Component 上收到 Base class undefined 错误。
错误信息:
Error 1 error C2504: 'Component' : base class undefined c:\users\pyro\documents\visual studio 2010\projects\engine\main\transform.h 9
游戏对象.h
#ifndef _GameObject
#define _GameObject
#include "Core.h"
#include "Component.h"
#include "Transform.h"
class Transform;
class Component;
class GameObject
{
protected:
Transform* transform;
vector<Component*> components;
};
#endif
组件.h
#ifndef _Component
#define _Component
#include "Core.h"
#include "GameObject.h"
class GameObject;
class Component
{
protected:
GameObject* container;
};
#endif
变换.h
#ifndef _Transform
#define _Transform
#include "Core.h"
#include "Component.h"
//Base class undefined happens here
class Transform : public Component
{
};
#endif
我发现了很多其他主题,但它们并没有真正解决我遇到的问题。所以问题是这样的:为什么我会收到这个错误,我该如何解决?