如何解决使另一个类的指针指向“this”
我正在开发一个非常基本的 C++ 2D 游戏引擎。我创建了一个名为 GameObject 的类,每个游戏对象都有一个组件列表。每个组件还有一个 GameObject 指针,指向它所属的游戏对象。基本上是这样的:
class Component{
public:
virtual void start() {};
virtual void update(float dt) {};
GameObject* obj;
};
class GameObject
{
private:
std::vector<Component*> components;
public:
void addComponent(Component* c)
{
c->obj = this;
components.push_back(c);
}
};
但是上面的代码给了我一堆错误:
-'obj' 不是 'Component' 的成员
-缺少类型说明符-假定为 int。注意 c++ 不支持 默认整数
如果我删除 GameObject 指针,我所有的错误都会消失。
这到底是什么问题?
解决方法
您需要转发声明 GameObject
类
#include <vector>
class GameObject;
class Component {
public:
virtual void start() {}
virtual void update(float dt) {}
GameObject* obj;
};
class GameObject {
private:
std::vector<Component*> components;
public:
void addComponent(Component* c) {
c->obj = this;
components.push_back(c);
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。