多继承设计实现

ste*_*225 0 c++ multiple-inheritance

我有3个班,A,B,和C那里BACA.

这些类旨在保留历史记录,因此A提供了一个虚拟方法,派生类可以创建该方法,以便在存档历史记录时进行通知void archive().

现在突然有一个需要有从信息A,B以及C在一个类中,我不知道最好的方法.

我想到了创建一个新的类D从继承BC,并改变他们的继承virtual public A,避免钻石的问题,并D::archive()简单地调用B::archive()C::archive().

这是一个好方法吗?或者我应该重新设计4个类,以便我不使用多重继承?

Lou*_*nco 5

你的方法是标准方法.C++具有多重继承,您可以随意使用它.看起来你知道如何正确地做到这一点.


Cra*_*lus 5

如何使用构图代替?
例如class D委托给类BC不是继承.
组合可以实现相同的结果,代码更简单(恕我直言)