Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »
