C ++对象互相引用

时间:2018-01-28 17:09:58

标签: c++ sfml

只是抬头 - 我是C ++的新手。 我似乎无法让2个对象互相引用。我已经阅读了有关前向声明并尝试使用unique_ptr()以及原始指针,但我无法让它工作...... 一些帮助将非常感激

所以这就是想法(简化): 我有一个渲染器类

class EventHandler;

class Renderer {
    EventHandler *eventHandler;
public:
    void addDrawing(sf::Drawable *);
};

和一个EventHandler类

class Renderer;

class EventHandler {
    Renderer *renderer;
};

基本上,我创建了使用EventHandler的Renderer。然后EventHandler也应该能够使用Renderer(调用addDrawing方法),但它应该使用该Renderer的唯一实例。 (这很重要)。

所以目前有两个问题:

  • 当eventHandler调用addDrawing程序崩溃时,我不知道为什么,但我的猜测是Renderer对象尚未完全初始化,即使存在地址。
  • 当我在EventHandler中创建Renderer时,它不是原始的Renderer实例,而是指向新实例的指针,据我所知。我需要原来的。

我知道如何通过简单地将Renderer作为参数传递来完成所有这些工作,但我希望它在全局范围内,而不是在EventHandler中本地。

0 个答案:

没有答案