Difference between revisions of "Step 4 (S-10662)"
(Create page for step id=10662) |
|||
Line 1: | Line 1: | ||
Step on Stepik: https://stepik.org/lesson/552/step/4 | Step on Stepik: https://stepik.org/lesson/552/step/4 | ||
− | + | [[File:Step_4_(S-10662)_1.png|border|800px]] | |
[00:00 - 00:18] теперь давайте обсудим как происходит создание и удаление объектов класса наследник те поля которые добавлены в классе наследнике они не пересекаются внутри конструктора в пластмассовой те же поля которые унаследованного класса родителя инициализируются внутри конструктора родительского класса | [00:00 - 00:18] теперь давайте обсудим как происходит создание и удаление объектов класса наследник те поля которые добавлены в классе наследнике они не пересекаются внутри конструктора в пластмассовой те же поля которые унаследованного класса родителя инициализируются внутри конструктора родительского класса |
Latest revision as of 12:36, 7 August 2017
Step on Stepik: https://stepik.org/lesson/552/step/4
[00:00 - 00:18] теперь давайте обсудим как происходит создание и удаление объектов класса наследник те поля которые добавлены в классе наследнике они не пересекаются внутри конструктора в пластмассовой те же поля которые унаследованного класса родителя инициализируются внутри конструктора родительского класса
[00:18 - 00:34] поэтому при создании объектов производного класса сначала вызывается конструктор родительского класса более того иногда этот конструктор нужно вызывать самостоятельно например если родительского класса нет конструктора по умолчанию есть конструктор с параметром
[00:34 - 00:53] ну например класса петерсон это может быть конструктора 2 параметров от имени и возраста тогда при создание производного класса нам этот конструктор нужно вызвать у производного класса разумно определить конструктор с теми параметрами то будет
[00:53 - 01:12] имя возраст и университет 3 поля которые определяют значение объекта типа и внутри списка инициализации мы должны будем вызвать конструктор класса петерсон от 2 параметров то есть передать
[01:12 - 01:27] имя и возраст внутри этого конструктора будут проинициализированы поля name h которые унаследованы отказ о прошлом и дальше можно уже не реагировать своей собственной поля данном случае и университета
[01:27 - 01:45] важно отметить что если бы у класса то что он был бы конструктор по умолчанию то можно было бы не вызывать его явно об этом позаботится компилятор то есть если внутри конструктора достаточно вызвать конструктор по умолчанию родительского класса можно не указывать он в любом случае будет выслан
[01:45 - 02:03] аналогично работает деструктор при удалении объекта класса при удалении объекта производного класса сначала вызывается деструктор производного класса то есть класса student а после этого вызывается деструктор класс
[02:03 - 02:21] при этом это делается автоматически ничего для этого специально не надо и более того это никак не повлиять то есть это является естественно если при создании мы сначала вызываем конструктор класса родителя потом конструктор производного класса то при удалении мы должны сначала вызвать деструктор
[02:21 - 02:26] производного класса а потом вызвать деструктор родительского вас