草庐IT

AbstractEventHandler

全部标签

C++函数不接受具体实现

我正在尝试实现类型安全的事件总线。我坚持使用EventBus::subscribe函数,因为它不接受我的具体事件处理程序。在较早的版本中,我只将AbstractEventHandler实现为抽象类,而不是模板。我对该实现没有任何问题。这就是为什么我认为实际问题出在抽象模板上。下面的代码是我的实现的精简版本。第一个block由事件总线的“骨架”及其所需的类组成,而第二个block显示事件、事件处理程序和主体的实际实现。enum包含所有可用的不同事件。抽象事件是所有具体事件派生的基础。事件处理程序是一个抽象模板,以事件作为模板类以确保类型安全。事件总线负责将所有已发布的事件分发到其各自的处