Classes base

O processo de herança cria uma nova classe derivada que é composta dos membros da classe base (ou das classes base), mais os novos membros adicionados pela classe derivada. Em uma herança múltipla, é possível construir um gráfico de herança em que a mesma classe base faz parte de mais de uma das classes derivadas. A figura a seguir mostra um gráfico desse tipo.

Diagrama de uma hierarquia de herança de classe que tem várias instâncias da classe base CollectibleString.
Várias instâncias de uma mesma classe base

Na figura, são mostradas representações pictóricas dos componentes de CollectibleString e CollectibleSortable. No entanto, a classe base, Collectible, está em CollectibleSortableString pelo caminho de CollectibleString e pelo caminho de CollectibleSortable. Para eliminar essa redundância, essas classes podem ser declaradas como classes base virtuais quando são herdadas.