我想执行双重调度。 说我有一个类,像这样:在方法/函数重载中,每个版本都必须重新实现吗?
class Entity
{
public:
virtual void eventHandler(Message* msg, Entity* entity);
}
然后最终我创建派生实体。假设我最终创建了来自Entity的几种不同类型。我是否需要转发在Entity.hpp中声明它们,然后为每一个创建方法?如果我的班级名称发生变化,会怎样增加维护费用?
我想知道的另一件事是,如果我需要重新实现每个类中的每一个。
说球员需要回应一个项目的事件处理程序。这是否意味着我需要为所有其他人提供空实现?
感谢
所以我应该通过铸造解决它?看起来好些,我不明白这有什么坏处。 – jmasterx
铸造不解决任何问题,不要这样做。在维基百科上阅读访问者模式。 –
我在回答中添加了一些伪代码。 –