Если у меня есть что-то вродевиртуальное наследование
class Base1 {};
class Base2 {};
class Derived : public Base1, public Base2 {};
Тогда порядок вызова конструктора на создание объекта из Derived является
Base1
Base2
т.е. в порядке их появления в
class Derived : public Base1, public Base2 {};
Но Если я изменю его на класс Derived: public Base1, virtual public Base2 {}; Тогда Порядок вызова конструктора становится
Base2
Base1
Я не могу понять, почему это так?
Еще одно простое сомнение: Что может быть значением и целью наследования Base1 практически.
11 месяцев, когда вы находитесь на SO, и вы все еще не можете правильно отформатировать свои сообщения ?! – BlackBear
Некоторая помощь http://gotw.ca/gotw/080.htm – DumbCoder
Я предполагаю, что у вас есть опечатка, потому что вы объявляете «Base1» и «Base2», но затем используйте «Base» и «Base1». – Cornstalks