使用动态类型调用除对象之外的其他方法

时间:2017-05-05 22:01:57

标签: c++

假设我有一个模型,它包含一堆存储在向量中的基类和派生类型对象指针。

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) {...}

};

0 个答案:

没有答案