В книге Брюса Эккеля "Философия С++ часть 2" автор приводит пример использование множественного наследование в качестве средства для расширения абстрактного класса библиотеки, к которой нет доступа. Суть задачи такова: есть интерфейс Vendor, редактировать код которого нельзя. Есть класс Pastel, с которым должны использоваться функции из библиотеки, в которой определен Vendor (принимают ссылку или указатель на Vendor), но функционала этого интерфейса недостаточно. Автор приводит решение:
class MyBase{
public:
virtual void v()const=0;
virtual void g()const=0;
}
class Pastel: public MyBase, public Vendor{
/*...*/
}
Вопрос: в чем преимущество такого подхода к расширению над таким:
class MyBase: public Vendor{
public:
virtual void v()const=0;
virtual void g()const=0;
}
class Pastel: public MyBase{
/*...*/
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники