Бьерн Страуструп - Язык программирования С++. Главы 5-7 - Иерархия классов

ОГЛАВЛЕНИЕ

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). Этот граф для приведенных классов имеет вид: