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