Re[7]: Присвоение свойств и вызов виртуального метода из конструктора
От: Sharov Россия  
Дата: 15.11.16 14:34
Оценка:
Здравствуйте, 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) еще не создан.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.