这是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?
或者虚拟继承确实是最好的方法吗?
答案 0 :(得分:1)
在上一次Going Native会议上有一个有趣的演讲我认为适用于此。 Inheritance Is The Base Class of Evil by Sean Parent