是否有任何C++实现在内部使用多重继承?

R34*_*R34 -1 c++ internals multiple-inheritance

只是一个快速愚蠢的问题:

我想知道C++是否在内部利用了虚拟继承提供的多重继承功能.我确信,对于模板化实现,例如STL提供的数据结构(例如std :: vector <>)不能使用这样的功能,但是如某些其他对象如流如何.

我知道多重继承在某些情况下可能很方便(例如,对于交叉委托)但我觉得如果C++开发人员决定避免在代码中使用这样的功能,我应该避免使用它.

感谢大家!

Mat*_*lia 7

iostream使用多个虚拟继承; 特别是,std::basic_iostream继承自std::basic_istreamstd::basic_ostream,并且它们都继承自std::basic_ios(使用虚拟继承).

话虽如此,iostream并不被广泛认为是一个伟大的设计的例子,所以从表面上看这些信息(=是,标准包括使用多重和虚拟继承的类),而不是作为良好实践的标记.