Мне нужно знать, когда конструкторы базовых классов вызываются при вызове конструктора производного класса.
Small example:
class Base1
{...}
class Base2
{...}
class Derived : Base1,Base2
{...}
int main (int argc, char** argv)
{
Derived Child;
}
С помощью команды Derived Child;
вызывается конструктор Derived
, но я читал, что перед выполнением конструктора класса Derived
выполняются все базовые конструкторы, то есть конструкторы Base1 и Base2.
Поэтому мне интересно, как бы был порядок событий, если бы конструктор класса Derived
выглядел так
Derived::Derived (Parameters)
: //initialization list
Base2 (Parameters)
{...}
Вызывается ли конструктор класса Base2
в списке инициализации конструктора Derived
или он вызывается раньше. Кроме того, все конструкторы базового класса вызываются в начале вызова конструктора Derived
или при запуске списка инициализации конструктора класса Derived
.
привет