Бьерн Страуструп - Язык программирования С++. Главы 5-7 - Иерархия классов
ОГЛАВЛЕНИЕ
Страница 32 из 70
6.2.3 Иерархия классов
Производный класс сам в свою очередь может быть базовым классом:        class employee { /* ... */ };
        class manager : public employee { /* ... */ };
        class director : public manager { /* ... */ };Такое множество связанных между собой классов обычно называют иерархией классов. Обычно она представляется деревом, но бывают иерархии с более общей структурой в виде графа:        class temporary { /* ... */ };
        class secretary : public employee { /* ... */ };
       class tsec
         : public temporary, public secretary { /* ... */ };
       class consultant
         : public temporary, public manager { /* ... */ };Видим, что классы в С++ могут образовывать направленный ацикличный граф (подробнее об этом говорится в $$6.5.3). Этот граф для приведенных классов имеет вид: