Использует ли какая-либо реализация C ++ множественное наследование для внутреннего использования?

Просто быстрый глупый вопрос:

Мне было интересно, использует ли C ++ функцию множественного наследования, предоставляемую виртуальным наследованием внутри. Я точно знаю, что для шаблонных реализаций, таких как структуры данных, предоставляемые STL (std :: vector <> например) не может использовать такую ​​функцию, но как насчет некоторых других объектов, таких как, например, потоки.

Я знаю, что множественное наследование может быть полезно в некоторых случаях (например, для перекрестного делегирования), но я чувствую, что мне следует избегать этого, если разработчики C ++ решили избегать использования такой функции в своем коде.

Спасибо всем!

-1

Решение

iostream использует множественное и виртуальное наследование; особенно, std::basic_iostream наследуется от std::basic_istream а также std::basic_ostreamи оба они наследуют от std::basic_ios (с виртуальным наследованием).

При этом iostream широко не рассматривается как пример отличного дизайна, поэтому воспринимайте эту информацию как чистую монету (= да, в стандарт включены классы, использующие множественное и виртуальное наследование), а не как знак хорошей практики.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]