Составители:
Рубрика:
62
Дублирование косвенного базового класса приводит к включению в
производный класс нескольких объектов базового класса. Для класса С в
последнем примере это означает, что компонентное данное x будет существовать
в объектах данного класса в двух экземплярах – один унаследован через класс В,
другой – через класс D. Структура объекта класса С изображена на рис
. 9.
объект класса А, унаследованный через класс В
int x
объект класса В
объект класса А, унаследованный через класс D
int x
объект класса D
объект класса С
Рисунок 9. - Структура производного класса при множественном
наследовании с дублированием косвенного базового класса.
При множественном наследовании зачастую возникает проблема
неоднозначности при доступе к дублирующимся компонентам класса: неясно,
какой из одноименных компонент изменится при следующем обращении
main()
{ C c;
c.x=6; // Ошибка!!!
А
В
С
Рисунок 8. - Множественное наследование с дублированием косвенного базового
класса
D
А
А А
В D
С
Рисунок 8. - Множественное наследование с дублированием косвенного базового
класса
Дублирование косвенного базового класса приводит к включению в
производный класс нескольких объектов базового класса. Для класса С в
последнем примере это означает, что компонентное данное x будет существовать
в объектах данного класса в двух экземплярах – один унаследован через класс В,
другой – через класс D. Структура объекта класса С изображена на рис. 9.
объект класса А, унаследованный через класс В
int x
объект класса В
объект класса А, унаследованный через класс D
int x
объект класса D
объект класса С
Рисунок 9. - Структура производного класса при множественном
наследовании с дублированием косвенного базового класса.
При множественном наследовании зачастую возникает проблема
неоднозначности при доступе к дублирующимся компонентам класса: неясно,
какой из одноименных компонент изменится при следующем обращении
main()
{ C c;
c.x=6; // Ошибка!!!
62
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »
