Поскольку следующее совершенно верно:
class Parent
{
public:
Parent(int i) { }
};
class Child : public Parent
{
public:
Child() : Parent(42) { }
};
Как компилятор может догадаться, хотите ли вы, чтобы у производного потомка был перенаправленный конструктор?А в случае множественного наследования набор конструкторов из двух типов может не совпадать;при пересылке конструктора из базового класса A, какой конструктор в базовом классе B должен называться?
Технически, я полагаю, разработчики языка могли бы сказать, что если тип имеет один базовый класс и в отсутствиеявный конструктор, все родительские конструкторы пересылаются.Однако это создает противоположную проблему: если базовый класс имеет несколько конструкторов, включая конструктор по умолчанию, и дочерний элемент желает разрешить только конструктор по умолчанию, теперь это должно быть явно указано.