我们对virtual继承的忠告:第一,非必要不要使用virtual bases。第二,如果必须使用virtual bases,尽可能避免在其中放置数据。这样你就不需担心这些classes身上的初始化(和赋值)所带来的诡异事情了。
1.多重继承比单一继承复杂。它可能导致新的歧义性,以及对virtual继承的需求。
2.virtual继承会增加大小、速度、初始化(及赋值)复杂度等等成本。如果virtual base class不带任何数据,将是最具实用价值的情况。
3.多重继承的确有正当用途。其中一个情节涉及“public继承某个Interface class”和“private继承某个协助实现的class”的两相组合。