假设我有一个模型,它包含一堆存储在向量中的基类和派生类型对象指针。
deleteAll()
现在在实现相应的视图时,我需要一个display()方法来处理各种对象,但是我不想用视图的东西弄乱模型,所以我把这些方法放在里面一个View类:
Class Potato
{...};
Class SmallPotato : public Potato
{...};
Class Model
{
public:
std::vector<Potato*> allPotatoes;
...
};
现在,当从View类中显示模型时,我需要使用正确的显示方法显示模型的对象,但我显然不能在这里使用动态绑定。我也不想尝试将每个对象动态广播到每个单个派生类型。有没有合理的解决方案可以让我做以下的事情?
Class View
{
public:
...
private:
display(Potato &potato) {...}
display(SmallPotato &potato) {...}
};