Расширение интерфейса библиотеки

155
20 марта 2018, 01:41

В книге Брюса Эккеля "Философия С++ часть 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{
/*...*/
}
READ ALSO
syntax error C2760. Что означает?

syntax error C2760. Что означает?

Добрый деньПомогите пожалуйста найти ошибку в коде

237
Как закрыть Socket?

Как закрыть Socket?

есть отдельный поток класс который работает с Socket-омКогда я отключаю клиент он все равно продолжает работать

188
java(fx) основы

java(fx) основы

Изучаю javaХочу вызвать в консоль текст, который написан в textField

147