Что происходит, когда в ромбовидной иерархии наследования виртуально только одна ветвь наследуется от конечного базовогоC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Что происходит, когда в ромбовидной иерархии наследования виртуально только одна ветвь наследуется от конечного базового

Сообщение Anonymous »

У меня вопрос относительно виртуального базового класса. Чтобы решить проблему «ужасного алмаза смерти»/неоднозначности при множественном наследовании, вводится виртуальный базовый класс.

class A { public: void Foo() {} };
class B : public virtual A {};
class C : public virtual A {};
class D : public B, public C {};


Что произойдет, если ключевое слово virtual не будет использоваться в объявлении класса C. Не могли бы вы объяснить мне подробно?

class A { public: void Foo() {} };
class B : public virtual A {};
class C : public A {};
class D : public B, public C {};


Подробнее здесь: https://stackoverflow.com/questions/158 ... h-inherits
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»