Разрешено ли вызывать метод базового класса в конструкторе производного класса?
Да. Просто следите за virtual
функциями. Если класс, производный от Derived
, переопределяет виртуальную функцию, в то же время создавая Derived
как подобъект этого дополнительного производного класса, динамический тип всегда равен Derived
, поэтому никакие виртуальные функции, переопределенные в других производных классах, не вызываются. (То же самое относится и к деструктору, кстати.)
Я бы предположил, что это нормально, поскольку объект Base должен быть полностью построен, но я хотел проверить на всякий случай.
Ваши рассуждения верны.