Задать вопрос
malworm
@malworm

Как решить проблему с множественным наследованием?

Есть базовый класс First содержащий 1 абсолютно виртуальную функцию

virtual QString getInfo() =0;

2 Производных класса Basic, Vip, причем
class Basic : virtual public First
class Vip : public Basic, public OtherClass (совершенно другой класс, не относится к этой иерархии)

И есть класс SuperVip, который и является причиной проблемы
class SuperVip : public Vip, public Basic

когда я пытаюсь сделать следующее
SuperVip* svip = dynamic_cast<SuperVip*>(tmpBasic)  //некий указатель на Basic
QString result = svip->Basic::getInfo();

Получаю
Basic is an ambiguous base of SuperVip

Указывающий на строку с result
Я понимаю, что это из-за того, что SuperVip наследует Basic и Vip в свою очередь тоже наследует Basic, вот и получается неопределенность.
Мне нужно ее решить не применяя виртуальное наследование, подскажите пожалуйста, как явно указать компилятору, какой метод использовать и избежать неопределенности?
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы