Страницы

Поиск по вопросам

пятница, 14 декабря 2018 г.

Виртуальное наследование в C++

Что это такое и зачем это используют в 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 {};

Комментариев нет:

Отправить комментарий