У меня есть этот следующий сценарий:Виртуальные классы множественного наследования
class RenderObject {
public:
virtual void sendToGPU() = 0;
virtual void removeFromGPU() = 0;
};
class Object3D : public RenderObject {
public:
virtual char getType() = 0;
};
class IGroup : public RenderObject {
public:
void sendToGPU(); // implementation of RenderObject's virtual method
void removeFromGPU(); // implementation of RenderObject's virtual method
};
class Group : public Object3D, public IGroup {
public:
char getType(); // implementation of Object3D's virtual method
};
и класс Группа наследуется RenderObject дважды. Я знаю, что это обычная проблема в множественном наследовании, но я действительно не знаю, как ее решить, так как я впервые сталкиваюсь с этим. Даже зная, что это распространенная проблема, я не смог найти решение, которое рассматривает предыдущую реализацию в одном из родителей (IGroup).
Решение с объяснением того, как работает эта языковая механика, будет оценено по достоинству.
поиск 'виртуальный inheritance' – billz