Я пытаюсь написать некоторые подклассы классов в большой библиотеке. Я получаю ошибку "неоднозначной базы". Вот компилируемый пример проблемы:
#include <iostream>
// I can't change these because they are in the library:
class InteractorStyle {};
class InteractorStyleCamera : public InteractorStyle {};
class InteractorStyleImage : public InteractorStyle {};
// These are my subclasses (so I can change them):
class PointSelector : public InteractorStyle {};
class PointSelector2D : public InteractorStyleCamera, public PointSelector
{
// This function has to exist exactly like this (a requirement of the library):
static PointSelector2D* SafeDownCast(InteractorStyle *o)
{
return static_cast<PointSelector2D *>(o);
}
};
int main()
{
return 0;
}
Ошибка
error: "InteractorStyle - это двусмысленная база" PointSelector2D ".
Есть ли что-нибудь, что я могу сделать в этом случае?