这是在 C++ 中:
假设我有一个Control
类,它有虚拟方法并且有两个实现,一个 Windows 和一个 Linux。使用CreateControl()
我创建的方法,ControlWindows
或者ControlLinux
是 Windows 或 Linux 实现。
我还有一个Button
继承自 的类,Control
也Button
有两个实现。这是一个简单的图表:
但是,在ButtonWindows
类中,我需要例如访问类中定义的方法和成员,但如果不直接继承并因此具有多重继承设计,ControlWindows
我就无法做到这一点。ControlWindows
然后,我将拥有Control
该类成员的多个实例。
它可以通过使用虚拟继承来解决,但这会对性能产生影响,如果可能的话,我想避免这种影响。