什么时候虚拟继承是一个好主意?

jma*_*erx 6 c++

我正在制作游戏GUI API,其中每个小部件都继承自Widget类.我在想,当其他人制作自己的小部件时,他们可能对基类不满意.例如,他们可能想要添加getTheme().让我的所有小部件实际上都是从Widget继承,那么这是可能的吗?

谢谢

Mar*_*k B 4

仅仅因为用户将自己的方法添加到子类中并不意味着您需要使用虚拟继承。如果在您的库中,您有一个具有多个子类的基类,并且人们可以同时从多个子类继承(例如混合而不是替换),那么您将使用它。