У меня есть абстрактный интерфейс IA, который наследуется от интерфейсов IB и IC с различным поведением.Также у меня есть реализации этих интерфейсов B от IB и C от IC.Что делать, если мне нужен класс A, реализующий IA, но часть реализации есть в B и C. Как это сделать.
РЕДАКТИРОВАНИЕ: Минимальный, полный пример:
#include <iostream>
class IB
{
public:
virtual void function_B() = 0;
};
class IC
{
public:
virtual void function_C() = 0;
};
class IA : public IB, public IC
{
};
class B : public IB
{
public:
virtual void function_B()
{
std::cout << "B\n";
}
};
class C : public IC
{
public:
virtual void function_C()
{
std::cout << "C\n";
}
};
// then I want IA implementation, but also to use
// ready implementation B and C
// this way doesn't work, the class A stays abstract
class A: public IA, public B, public C
{
};
int main()
{
IA *a = new A;
a->function_B();
a->function_C();
}