Здравствуйте, sharez, Вы писали:
S>Здравствуйте, Sharov, Вы писали:
S>>Вы рассуждаете с той точки зрения, что вызывая n предконструкторов у нас будет n объектов. В реальности child и parent явл. собой один объект (область в памяти). Т.е. конструктор child не заменяет, а расширяет parent конструктор. Без parent конструктора говорить о child смысла нет. Поэтому пляски вокруг базовых конструкторов.
S>Нет, отчего же, конструктор Parent выделяет память под instance.parent_field_x, instance.parent_field_y, потом Child выделяет память под instance.child_field_z. S>Вызываем по цепочке предконструкторы и предварительно выделяем память для всего объекта целиком, чтобы Child мог его использовать.
Ну правильно, сначала констр. объекты класса, потом используем поля данного класса. В приведенной выше схеме попытка исп. поля до конструкции объекта. Приведенный код весьма прост, а вот если в общем случае будет вызываться метод, который будет использовать поля Parent, а он(Parent) еще не создан.