использовал виртуальное наследование для какой-то практической цели? Расскажи зачем?
Я использовал, да
Сейчас
Короче, я писал фреймворк для создания управляющих приложений печатных машин (полиграфических станков) для завода Хайдельберг, который (фреймворк) ориентирован на работу с тач-скринами. По фукнционалу фреймворк напоминал урезаный MFC, но ещё было требование, чтобы компоненты фреймворка, оформленные в виде библиотек, могли бы заменяться на новые версии без перекомпиляции (пересборки) старых приложений. Для этого во фреймворке активно использовался GoF-паттерн Bridge (он же Interface), и всё связывание сводилось к созданию экземпляров объектов и вызовам их виртуальных методов. Аналогичный подход используется в COM/OLE в Win. Так вот, в силу этого всего естественно активно использовались а) множественное наследование б) виртуальные базы (практически все базы были виртуальными) Естественно, потому что , скажем, экземпляр поэобъекта-аналога IUnknown из COM должен быть в каждом объекте ровно один, а не несколько. Подозреваю, что при программировании COM приходится сталкиваться с такими же подходами -- всё наследование должно быть виртуальным.
Обсуждают сегодня