Многочисленные наследуемые конструкторы называются несколько раз? И в каком порядке называются конструкторы? Это зависит от порядка в списке наследования?
Вот пример (это только для того, чтобы сделать ситуацию ясной, не реальный пример).
class Base {};
class DerivedBaseOne : public Base {};
class DerivedBaseTwo : public Base {};
class Derived : public DerivedBaseTwo, public DerivedBaseOne
{};
//somewhere in the code, is Base() called two times here?
Derived * foo = new Derived();
Является ли конструктор Base() дважды вызванным? И в каком порядке называются конструкторы? База сначала? Или DerivedBaseOne() или DerivedBaseTwo() сначала?
Спасибо.