У меня вопрос относительно виртуального базового класса. Чтобы решить проблему «ужасного алмаза смерти»/неоднозначности при множественном наследовании, вводится виртуальный базовый класс.
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
Мобильная версия