Составители:
Рубрика:
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
- …
- следующая ›
- последняя »