虚拟继承的其他替代方案?

时间:2014-08-28 18:17:27

标签: c++ design-patterns c++11 multiple-inheritance virtual-inheritance

这是C ++中虚拟继承的典型示例(从cprogramming.com复制而来):

class storable
{
public:

    storable(const char*);
    virtual void read();
    virtual void write(); 
    virtual ~storable();

private:

    // some data...      
};

class transmitter : public virtual storable 
{
public:
    void write();
    ...
};

class receiver : public virtual storable
{
public:
    void read();
    ...
};

class radio : public transmitter, public receiver
{
public:
    ...
};

我之前在类似的层次结构上使用过这种方法,但是,我有兴趣了解这个具体例子我们还有什么其他选择。在这种情况下,我们如何替换虚拟继承?使用某种形式的作文? Mixins

或者虚拟继承确实是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

在上一次Going Native会议上有一个有趣的演讲我认为适用于此。 Inheritance Is The Base Class of Evil by Sean Parent