是否可以使一个类成为两个不同层次结构的子级?

时间:2018-06-29 13:26:50

标签: c++ inheritance multiple-inheritance

我想执行以下操作:

class MyA : public ExternalA {
// some code
}

class MyB : public ExternalB {
// the same code as above
}

即我想以相同的方式扩展ExternalA和ExternalB。但是(出于某些原因)我不想想要做:

class MyC : public ExternalA, public ExternalB
{
// same code
}

PS,编辑:我的问题是我如何避免在MyA和MyB的定义中重复代码部分。

1 个答案:

答案 0 :(得分:3)

模板可能会有所帮助:

template <typename Base>
class MyDerived : public Base
{
    // some code
};

using MyA = MyDerived<ExternalA>;
using MyB = MyDerived<ExternalB>;