我正在进行物理模拟,我有两个课程,Simulation
和Renderer
。
我需要让他们互相引用,问题是当我通过时
Renderer
引用了这种情况。
以下是代码:
Renderer.cpp
Renderer::Renderer(Simulation* _sim) {
sim = new Simulation(*_sim);
}
Renderer::~Renderer() {
delete sim;
}
Renderer.hpp
class Renderer {
private:
Simulation* sim;
public:
Renderer(Simulation* _sim);
~Renderer();
};
编辑:
这是请求的代码(我用它做的唯一事情是绘制它):
Renderer.cpp
void Renderer::Draw() {
for(auto obj : sim->objects) {
glBegin(GL_POINTS);
for(auto p : obj) {
glColor3f(COLORS[p.id][0], COLORS[p.id][1], COLORS[p.id][2]);
glVertex2f(p.x,p.y);
}
glEnd();
}
}
错误来自sim = new Simulation(*_sim);
,如果删除它,
没有错误。没有关于如何解决它的想法?
答案 0 :(得分:0)
我自己修复了这个问题。双删除问题。当我要删除它时,模拟已经删除了。
我只是去了delete sim
。