Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 50 стр.

UptoLike

Составители: 

50
B()
int b2
funcB()
C()
int c1
int c2
funcC()
Рисунок 4. - Структура производного класса при наследовании
Класс С можно разделить на 3 частичасть, косвенно унаследованную от
А, часть, унаследованную от В, а также собственные компоненты класса С.
Соответственно, структура класса В состоит из двух частейунаследованной от А
и собственных компонент класса. Объект-представитель класса C является
единым блоком объектов и
включает собственные данные-члены класса C, а
также данные-члены классов B и A. При создании объектов класса С в памяти
будет выделяться 8 байт под компонентные данные объекта (4 компонента типа
int). Для объектов класса С будут доступны методы базовых классов, при
создании этих объектов будут вызываться конструктор как непосредственно
класса
С, так и объектов его базовых классов. При этом вызов конструкторов
строго регламентировансначала вызываются конструкторы базовых классов,
затемконструкторы агрегированных в класс объектов (объектов других классов,
которые являются компонентами данного класса) и в последнюю очередь
конструктор производного. Если конструкторы базовых классов имеют
формальные параметры, то при определении конструктора производного класса
необходимо предусмотреть вызов конструкторов базовых классовых с
необходимыми фактическими параметрами:
конструктор (список_форм_параметров) : конструктор_базового_класса_1
(спи-сок_факт_параметров), … , конструктор_базового_класса_n (список_
факт _параметров)
{тело_конструктора}
       B()
       int b2
       funcB()
       C()
       int c1
       int c2
       funcC()
      Рисунок 4. - Структура производного класса при наследовании
      Класс С можно разделить на 3 части – часть, косвенно унаследованную от
А, часть, унаследованную от В, а также собственные компоненты класса С.
Соответственно, структура класса В состоит из двух частей – унаследованной от А
и собственных компонент класса. Объект-представитель класса C является
единым блоком объектов и включает собственные данные-члены класса C, а
также данные-члены классов B и A. При создании объектов класса С в памяти
будет выделяться 8 байт под компонентные данные объекта (4 компонента типа
int). Для объектов класса С будут доступны методы базовых классов, при
создании этих объектов будут вызываться конструктор как непосредственно
класса С, так и объектов его базовых классов. При этом вызов конструкторов
строго регламентирован – сначала вызываются конструкторы базовых классов,
затем – конструкторы агрегированных в класс объектов (объектов других классов,
которые являются компонентами данного класса) и в последнюю очередь –
конструктор      производного.   Если    конструкторы     базовых     классов   имеют
формальные параметры, то при определении конструктора производного класса
необходимо       предусмотреть   вызов    конструкторов     базовых     классовых   с
необходимыми фактическими параметрами:
конструктор      (список_форм_параметров)      :   конструктор_базового_класса_1
(спи-сок_факт_параметров), … , конструктор_базового_класса_n (список_
факт _параметров)
      {тело_конструктора}




                                          50