0

这是在 C++ 中:

假设我有一个Control类,它有虚拟方法并且有两个实现,一个 Windows 和一个 Linux。使用CreateControl()我创建的方法,ControlWindows或者ControlLinux是 Windows 或 Linux 实现。

我还有一个Button继承自 的类,ControlButton有两个实现。这是一个简单的图表:

类图 但是,在ButtonWindows类中,我需要例如访问类中定义的方法和成员,但如果不直接继承并因此具有多重继承设计,ControlWindows我就无法做到这一点。ControlWindows然后,我将拥有Control该类成员的多个实例。

它可以通过使用虚拟继承来解决,但这会对性能产生影响,如果可能的话,我想避免这种影响。

4

0 回答 0