É possível para uma classe derivada herdar duas ou mais classes base; neste caso, está se utilizando do mecanismo de herança múltipla suportado por C ++. A forma de declarar uma classe derivada por herança múltipla é
class Derived : access Base1, access Base2 {
...
};
Observe que para cada classe base é possível especificar um modo de acesso independente.
Há controvérsias sobre o uso de herança múltipla, se ela traz benefícios ou se ela deve ser evitada totalmente. O que se põe em questão não é o mecanismo em si, mas sua validade como ferramenta de modelagem de aplicações. Em muitos casos, exemplos para ilustrar a utilidade de herança múltipla são pouco naturais. Entretanto, como o mecanismo está presente na linguagem, sua utilização ou não acaba se tornando mais uma questão de estilo pessoal.
Um detalhe que deve ser observado com relação à
herança múltipla é a manipulação de nomes de
membros duplicados nas classes base -- como especificar a qual deles
a classe derivada se refere? O mecanismo adotado para resolver tais
problemas é chamado de qualificação, que consiste
em prefixar o nome do membro (atributo ou método) com o nome da
classe base a que ele se refere, sendo os nomes separados por um
duplo dois-pontos ::
.