Что это такое и зачем это используют в C++?
Ответ
Виртуальное наследование необходимо в такой ситуации.
class A { int a; };
class B: public A {};
class C: public A {};
class D: public B, public C {};
В классе D, в таком случае, будут два поля с именем a и они оба будут принадлежать классу A.
Проблема состоит в определении к какой переменной идет обращение. Для исключения подобной ситуации используют виртуальное наследование. Правильный вид объявления в данном примере будет
class A { int a; };
class B: public virtual A {};
class C: public virtual A {};
class D: public B, public C {};
Комментариев нет:
Отправить комментарий