Множественное наследование
Под множественным наследованием понимается способность наследования свойств и поведения не от одного базового класса, а от нескольких. Такое наследование легко проследить по классификации языков
программирования. У каждого из языков, как правило несколько предков.
Так язык программирования С++ является потомком Си и Симулы, язык Ада
потомком целого спектра языков и так далее.
Си Симула
^
< >
Насле- Порождение
дование классов
С++
v
Как используется наследование в реальных программах? На примере
библиотеки Turbo Vision попробуем проследить его использование в иерархии классов TObject и TView. Внимательное ее изучение будет вам
чрезвычайно полезно. Так, вы узнаете, что класс TDialog (диалог) является наследником класса TWindow (окно), который, в свою очередь,
является наследником класса TGroup (группа), а последний - класса
TView (отображаемый объект). Имеется несколько примеров множественного наследования в иерархии классов Turbo Vision. Вот один из них:
TProgram получается из TProgInit и TGroup.
Рисунок: иерархия классов Turbo Vision.
opstream
TObject TStreamable
^ ^
ipstream
TView
^
TGroup
^ ^ ^
TDeskInit
^
TWindowInit
^
TProgInit TDeskTop
^
>TWindow< THistInit<
TProgram THistoryWindow
^
TApplication TDialog
Примечание: по установившейся практике стрелки показывают
от порожденного класса на базовый.
Выбрав любой из классов, вы можете найти в его определении
унаследованные и новые свойства.