Definição de Herança na linguagem de programação C++
Herança é u ma p ropr iedade da programação orien tada a ob jetos, que per m i te que u ma classe derivada, ou subclasse, herde de u ma classe, denoni mada classe base, suas atribuições e méto dos. Essa classe base, ou subclasse po de ter as suas características herdadas po r mais de u ma subclasse.
Exemplo:
class Caixa { public: int altura, largura; void Altura(int a) { altura=a; } void Largura(int l) { largura=l; }
};
class CaixaColorida : public Caixa { public: int cor; void Cor(int c) { cor=c; }
};
A f or ma geral da herança é:
class nome_da_classe_derivada : acesso nome_da_classe_base
{
// Corpo da classe
};
No qual o acesso, pode ser public ou p r iva te. Se public, t odos os element os públicos da classe base per manecerão pú blicos na subclasse. Se p r iva te, os element os pú bl icos da classe base passam a ser pr ivados na subclasse, com isso caso a subclasse passe a ser classe base de ou t ra subclasse, a nova subclasse não terá mais acesso aos element os públicos da p ri meira classe base.
Constru tores e Dest ru to res
Quando u ma classe é instanciada, seu const ru to r é chamado, por tan to, se a classe f o r herdada de u ma classe base, o constru to r da classe base ta m bém deve ser chamado. A ordem de chamada dos const ru t ores é f i xa na linguagem C++, por isso se u ma classe base deriva de ou t ra classe base, o processo de chamada de const ru t or é repeti da até que se alcance u ma classe que não é derivada.
Os dest ru t ores são chamados na or dem inversa dos const ru t ores. Primeiro os atribu t os mais especializados são destruídos, depois os mais gerais.
Ambiguidade
A ambigüidade ocorre quando o com pilador não consegue ident i f icar qual atribu to ou méto do de ser acesso, isto ocorre quando houver atribu t os ou métodos com o mesmo no me, no mesmo nível. Este erro é cont ornado u t ili zando o operador de